长度为20的一维数组按按升序排序(20个整型数由随机数函数产生),并把排序结果输出。
#include<stdio.h>
#define N 20
int main(){
int i,j,t,a[N+1];
for(i=1;i<=N;i++)//输入 N个整数
scanf("%d",&a[i]);
for(i=2;i<=N;i++) //
for(j=i;j>1;j--)
if(a[j]>=a[j-1]) break;//按升序排列
else{t=a[j];a[j]=a[j-1];a[j-1]=t;//如果前面的数大于后面的,交换顺序
}
i=1;
while(i<=N)
printf("%d ,",a[i]);
printf("\n");
return 0;
}
有帮助的话采纳一下哦!
冒泡排序,选择排序,插入排序,计数排序,桶排序,希尔排序,快速排序等等
以上排序算法都可以
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int i, j, a[20];
srand(((unsigned int)time(NULL)));
for (i = 0; i < 20; i++)
{
a[i] = rand() % 100;
}
for (i = 0; i < 19; i++)
{
for (j = 0; j < 19 - i; j++)
{
if (a[j] > a[j + 1])
{
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
for (i = 0; i < 20; i++)
{
printf("%d ", a[i]);
}
return 0;
}
注释在代码里,有帮助请采纳
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int k, j, a[20];
srand(((int)time(NULL)));
for (k = 0; k < 20; k++)
{
a[k] = rand() % 100;//0<=a[k]<100
}
printf("排序前:\n");
for (j = 0; j < 20; j++)
{
printf("%d ", a[j]);
}
for (k = 0; k < 19; k++)
{
for (j = 0; j < 19 - k; j++)
{
if (a[j] > a[j + 1])
{
int temp = a[j];//大的换到后面
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
printf("\n排序后:\n");
for (j = 0; j < 20; j++)
{
printf("%d ", a[j]);
}
return 0;
}