为啥一开始要if i不等于9呀。求大佬帮我解释一下这整个代码写的具体意思,谢谢了。我看得有点懵逼。
定义了数组和整型变量i,j之后,第一个for循环是把排序前的数组遍历出来,if语句作用是数组最后一个数后不要逗号的作用。第二个内嵌循环中第1个for循环作用是逐渐缩小比较范围,第2个for循环作用是通过(比较)和(赋值)把大的数放到当前范围的最后。最后一个循环作用是把排序后的数组遍历出来,if语句作用同第一个。不知道这样是不是你想要的答案?
说白了其实很简单,注意看两个printf“”里面内容,只是因为第十个后面不用输出“,”而已,这就是这个if语句的作用——前九个数输出时带“,”,第十个不带。
if应该也可以等于9,只需要把程序改一下。
for(i=9; i>=0; i--)
{
for(j=0;j<i;j++)
{
if( arr[j]>arr[j+1] ) //当前面的数比后面的数大时
{
double temp; //定义临时变量temp
temp=arr[j]; //将前面的数赋值给temp
arr[j]=arr[j+1];
//前后之数颠倒位置
arr[j+1]=temp; //将较大的数放在后面
}
}
}
这样应该也可以。