C的问题 来看看

来源:百度知道 编辑:UC知道 时间:2024/05/09 11:29:18
for(i=0;i<20;i++)
{
for(i=0;i<9;i++) {if(a[i]>a[i+1]) {n=a[i];a[i]=a[i+1];a[i+1]=n;};};
};

这样写的话第二个for里面的i循环是不是没有意义了

理论上说是有意义的
如果第一个for里面有多个条件的话,这样写完全不算多余
如果只有笔者写的内容,就显得多此一举了
编程要养成良好的习惯,写好程序要自己检查一下
尽量用简单的程序表达容易理解的意思
呵呵 以后注意哦

有意义啊
内部的for 9次两两比较a[i]>a[i+1]就有交换

外部有20次循环啊

第二个for里边的i将以里层循环的i为标准。
这样写在实际应用中是绝对不允许的。

for(i=0;i<20;i++)
{
for(i=0;i<9;i++) {if(a[i]>a[i+1]) {n=a[i];a[i]=a[i+1];a[i+1]=n;} }
}

程序有一些问题:
1. } 后不要写‘ :’。
2.两个for循环中控制变量都是i,造成内层循环出来的i都是 9 ,由于 9 < 20;所以始终执行外层循环,最后造成死循环。