#include<stdio.h>
int main()
{
int i,j,x;
int a[6];
//int a[6]={12,8,22,5,3,10};
printf("请输入:\n");
for(i=0;i<6;i++){
scanf("%d",&a[i]);
/*scanf("%d ",&a[i]);
用空白符结尾时,scanf会跳过空白符去读下一个字符,scanf在之前只读了10个数给数组初始化,后面必须多读一个数来作为结束信号,所以你必须再输入一个数。同理如果你用
scanf("%d\n",&a[i]);也会出现同样的问题。
解决方法
删掉空白符或\n即可。*/
}
int t;for(i=0;i<6;i++){
for(j=5;j>=i;j--){//
if(a[j]<=a[j+1]){
t=a[j+1];//交换的是数组的值,而不是数组下标
a[j+1]=a[j];//因为a[j+1]>a[j]所以将其换到前面,使a数组前面的值最大
a[j]=t;
//大到小排列(大的放前面,小的放后面)
}
}
}
for(i=0;i<6;i++){
printf("%d ",a[i]);
}
return 0;
}
将数组由大到小依次排列
最新推荐文章于 2024-09-14 10:53:20 发布