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(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;所以始终执行外层循环,最后造成死循环。