主页 | 讨论版 | 问题 | 名次 | 状态 | 统计 |
给定m组n个正整数,将每一组数字从小到大进行排序。
输入数据有多组,每组数据占一行,每行的第一个数正整数n(1<=n<=20),表示整数个数,后面接n个正整数。当n为0时,不作任何处理,输入结束。
输出每组排序的结果。
2 1 2 3 121 10 111 0
1 2 10 111 121
#include<stdio.h>
int main()
{
int a,i;
for(i=0;;i++)
{
scanf("%d",&a);
// 输入的个数
if(a==0)
break;
int b[a],j,k,t;
for(j=0;j<a;j++)
scanf("%d",&b[j]);
for(j=0;j<a-1;j++)
// 这里有点不清楚为什么要a-1
{
for(k=0;k<a-1;k++)
// 一样为什么要a-1
{
if(b[k]>b[k+1])
{
t=b[k];
b[k]=b[k+1];
b[k+1]=t;
}
// 大小交换位置
}
}
for(j=0;j<a;j++)
// 这里为什么又是<a了,而不是a-1
{
if(j==a-1)
printf("%d",b[j]);
else printf("%d ",b[j]);
}
// 这里一段都没看懂
printf("\n");
}
return 0;
}
// 最重要最重要的是卡在a-1了/(ㄒoㄒ)/~~
求大神帮助!!!!
小号
相关分类