#include
int main()
{
int i,j,tmp,a[10];
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<10;i++)
{
for(j=0;j<9-i;j++)
{
if(a[j]>a[j+1])
{
tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
}
}
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
return 0;
}
上面的程序可以用来将10个数从小到大排序,但是题目要求样例输入:(要求指明10个数,但是10会作为数据参与排序)
10
1 0 4 8 12 65 -76 100 -45 123
为啥我的是
-67 -45 0 1 4 8 1012 65 100
该怎么解决?
在main()中定义一个int 型的num,在循环语句之前写一句scanf获取num。
题目要求是有一个任意长度,而不是把长度是10写进程序里。
你把代码中所有的10换成num。
数组十个元素有九个要排序,控制趟数:i < 10-1
第一元素要排序或者说比较九次,第二个元素排序八次所以-i比较合适:j < 10-1-i