从键盘上任意输入10个数,10个数放到数组里,然后写一个排序的算法,把10个数排序后输出出来
简单冒泡排序
#include <stdio.h>
void prin(int t[],int n)
{
for(int i=0; i<n; i++)
printf("%d ",t[i]);
printf("\n");
}
void BubbleSort(int t[],int n)
{
for(int i=0; i<n-1; i++)
{
for(int j=0; j<n-1-i; j++)
{
if(t[j]>t[j+1])
{
int tem=t[j];
t[j]=t[j+1];
t[j+1]=tem;
}
}
printf("第%d趟排序完成( %d 完成了冒泡):",i+1,t[n-1-i]);
prin(t,n);
}
}
int main()
{
int n=10;
int t[n];
printf("输入数组:");
for(int i=0;i<n;i++)
{
scanf("%d",&t[i]);
}
printf("\n");
BubbleSort(t,n);
printf("\n");
printf("排序完成后:");
prin(t,n);
return 0;
}
#include<stdio.h>
int main()
{
int i, j, t;
int arr[10];
printf("请输入十个数:");
for (i = 0; i < 10; i++)
{
scanf("%d", &arr[i]);
}
for (j = 0; j < 9; j++)
{
for (i = 0; i < 9 - j; i++)
{
if(arr[i]>arr[i+1])
{
t = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = t;
}
}
}
printf("按从小到大的顺序:");
for (i = 0; i < 10; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
你想要什么排序,冒泡、快速、堆排序、希尔排序,看你需求
#include<stdio.h>
void main()
{
int n[10];//定义一个大小为10的数组
int i, j, temp;
printf("请输入10个数据:\n");
//从控制台获取10个数
for(i=0;i<10;i++){
scanf("%d",&n[i]);
}
for (i = 1; i <= 9; i++)//外层循环是比较的轮数,数组内有10个数,那么就应该比较10-1=9轮
{
for (j = 0; j <= 9 - i; j++)//内层循环比较的是当前一轮的比较次数,例如:第一轮比较9-1=8次,第二轮比较9-2=7次
{
if (n[j] > n[j + 1])//相邻两个数如果逆序,则交换位置
{
temp = n[j];
n[j] = n[j + 1];
n[j + 1] = temp;
}
}
}
printf("排序过后的数顺序:\n");
for (i = 0; i < 10; i++)
printf("%-4d", n[i]);
printf("\n");
}
截图:
C++编程:
#include<iostream>
using namespace std;
int main()
{
int i,j,a,b,math[10];
for(i=0;i<10;i++)
{
cin>>math[i];
}
for(i=0;i<9;i++)
{
a=i;
for(j=i+1;j<10;j++)
{
if(math[j]<math[i])
{
a=j;
int temp;
temp=math[a];
math[a]=math[i];
math[i]=temp;
}
}
}
cout<<"从小到大:";
for(i=0;i<10;i++)
{
cout<<math[i];
cout<<" ";
}
return 0;
}
如有帮助,还请采纳!谢谢!
我承认我已经尽量将这个问题复杂化来凸显我的代码量了,但还是没几行QAQ
#include <stdio.h>
#define N 10
int main()
{
int Input[N] = {0};
int i, j, k;
printf("Input %d Number\n", (int)N);
for (i = 0; i < N; i++)
{
printf("Input No.%d:", i + 1);
scanf("%d", &Input[i]);
}
for (i = 0; i < N - 1; i++)
{
for (j = i + 1; j < N; j++)
{
if(Input[i] > Input[i + 1])
{
k = Input[i + 1];
Input[i + 1] = Input[i];
Input[i] = k;
}
}
}
printf("Resault .oO:");
for (i = 0; i < N; i++)
{
printf("%d ", Input[i]);
}
printf("\n");
printf("Resault Oo.:");
for (i = 0; i < N; i++)
{
printf("%d ", Input[N - i - 1]);
}
printf("\n");
return 0;
}
您可以使用C++标准库自带的排序函数——sort
例如:sort(a+1,a+n+1);
如果你想从小到大排序,可直接用下面的代码:
#include<bits/stdc++.h>
using namespace std;
const int N=10;
int a[N];
int main()
{
int n;
cout<<"请输入数组长度:";
cin>>n;
cout<<"请输入数组:";
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+n+1);
cout<<"排序完的数组:";
for(int i=1;i<=n;i++){
cout<<a[i]<<' ';
}
return 0;
}
效果:
#include<bits/stdc++.h>
using namespace std;
const int N=10;
int a[N];
bool cmp(int x,int y){
return x>y;
}
int main()
{
int n;
cout<<"请输入数组长度:";
cin>>n;
cout<<"请输入数组:";
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+n+1,cmp);
cout<<"排序完的数组:";
for(int i=1;i<=n;i++){
cout<<a[i]<<' ';
}
return 0;
}
效果:
选择排序法:
// 用选择排序对十个数字进行排序 数字有键盘输入
void choseSort(int* a, int length) {
int min= 0;
for (int i = 0; i < length-1; i++) {//总共有n-1趟排序
//1.找出未排序数组中最小的元素
min = i;
for (int j = i + 1; j < length-1; j++) {
if (a[min] > a[j]) {
min = j;
}
}
//2.将找到的最小元素与未排序数组的第一个元素交换
int tmp = a[i];
a[i] = a[min];
a[min] = tmp;
}
}
int main()
{
int num[10];
printf("请输入十个待排数字(整数):\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &num[i]);
}
printf("排序前的序列如下:\n");
for (int i = 0; i < 10; i++) {
printf("%2d ", num[i]);
}
choseSort(num, 10);
printf("排序后的序列如下:\n");
for (int i = 0; i < 10; i++) {
printf("%2d ", num[i]);
}
return 0;
}
#include <stdio.h>
#define N 10
int main()
{
int Input[N] = {0};
int i, j, k;
printf("Input %d Number\n", (int)N);
for (i = 0; i < N; i++)
{
printf("Input No.%d:", i + 1);
scanf("%d", &Input[i]);
}
for (i = 0; i < N - 1; i++)
{
for (j = i + 1; j < N; j++)
{
if(Input[i] > Input[i + 1])
{
k = Input[i + 1];
Input[i + 1] = Input[i];
Input[i] = k;
}
}
}
printf("Resault .oO:");
for (i = 0; i < N; i++)
{
printf("%d ", Input[i]);
}
printf("\n");
printf("Resault Oo.:");
for (i = 0; i < N; i++)
{
printf("%d ", Input[N - i - 1]);
}
printf("\n");
return 0;
}
Sort函数排序