不是很理解,求大佬能稍详细地解释下
这是课堂练习题,我不太明白为什么这么编写就能达到目的。从for(j=1;j<11-i;j++)开始不能理解
求大佬能稍详细地解释下
非常感谢!
题目:编写一个程序,对任意10个整数从低到高排序并输出。
#include <stdio.h>
int main()
{
int i,j,t;
int a;
printf("请输入10个整数:\n");
for(i=1;i<11;i++)
{
scanf("%d",&a);
}
for(i=1;i<10;i++)
{
for(j=1;j<11-i;j++)
{
if(a>a)
{
t=a;
a=a;
a=t;
}
}
}
printf("排序:\n");
for(i=1;i<=10;i++)
{
printf("%5d",a);
}
return 0;
} 你可以看看这篇文章的动图:https://www.jianshu.com/p/c5e0478afa86
祝好 看看这个,要真讲我讲不来,随便一个人讲的都比我好
其实说简单些就是让最小的放在最前面,第二小的放在第二个位置......
https://blog.csdn.net/ysjian_pingcx/article/details/8656048 {:10_247:} 额,我也不理解 j=1 , j<11,j++
第一个是赋值
第二个是判断J的值是否>11
j++是每次循环结束j自+1
直到j的值>11时,不再执行循环 写的挺有意思的,i,j都是从1开始。a的位置一直空置着。
如果你想搞明白,是怎么回事,你最好自己尝试debug单步走一遍,或者把2个数字替换一下位置后,把这个替换后的结果打印出来看一遍,不就清楚了吗? {:5_103:} {:5_100:} {:5_103:} {:5_103:} {:9_219:}
页:
[1]