读书人

问一个循环的有关问题

发布时间: 2012-03-01 10:25:46 作者: rapoo

问一个循环的问题
for( )
{
for( )
}
是不是当第一个for循环1次时,第二个for循环了N次。

for()
for()
则第一个for和第二个for的循环次数一样。

我不理解一个二维数组求最大值的函数
max_value(int array[][4])
{
int i,j,k,max;
max=array[0][0];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
if(array[i][j]>max)max=array[i][j];
return(max);
}
应该是逐个比较的,为什么这样写,而要打印一个二维数组的基本形式则是这样
for( )
{ for()
printf() }


[解决办法]
两者是一样的
[解决办法]
for()的作用域到第一个;
[解决办法]
乖乖,哪本书告诉你for()里面是空的啊?
[解决办法]
同意一楼的看法,虽然我也是个初学者
[解决办法]
这个是依次循环比较的呀,
for(i=0;i <3;i++) //依次比较每行的元素;注意这里没有加{},他的作用域是与他紧邻的下一语句;
//而他的下一语句又是个循环体;
for(j=0;j <4;j++) //依次比较每列的元素;注意这里也没有加{},他的作用域是与他紧邻的下一语句
if(array[i][j]>max)max=array[i][j];

return(max); //循环体之外的
}


实际上是这样的
for(i=0;i <3;i++)
{
for(j=0;j <4;j++)
{
if(array[i][j]>max)max=array[i][j];
}
}
return(max);
[解决办法]
哎写里只是没写得这么规范,
建议个位出书的人要规范化啊,
[解决办法]
for(i=0;i <3;i++)
for(j=0;j <4;j++)
if(array[i][j]>max)max=array[i][j];
相当于
for(i=0;i <3;i++) {
for(j=0;j <4;j++)
if(array[i][j]>max)max=array[i][j];
}
这事作用域的问题
就好象
if(...)
printf("df");
相当于
if(...){
printf("df");
}

[解决办法]
两个循环是一样的
[解决办法]
还是要注意书写,否则读起来有点小麻烦
[解决办法]

C/C++ code
1)    int i;    int j;    for (i = 0; i < 100; ++i)        for (j = 0; j < 100; ++j)            printf("%d,%d\n", i, j);2)    int i;    int j;    for (i = 0; i < 100; ++i)    {        for (j = 0; j < 100; ++j)            printf("%d,%d\n", i, j);    }3)    int i;    int j;    for (i = 0; i < 100; ++i)    {        for (j = 0; j < 100; ++j)        {            printf("%d,%d\n", i, j);        }    }效果都是一样的,for语句的循环体如果只有一天语句,则 {} 是可以省略的你随便找个c教程看看,都有讲的
[解决办法]
max_value(int array[][4])
{
int i,j,k,max;
max=array[0][0];
for(i=0;i <3;i++)
for(j=0;j <4;j++)
if(array[i][j]>max)max=array[i][j];
return(max);
}
第一个for要执行的语句只有第二个for;
第二个for要执行的语句只有一个if语句;
只有一个语句的时候括号{}是可以省略的,
如果是多条语句的话,就必须加{}了
而要打印一个二维数组的基本形式则是这样
for( )
{ for()
printf() }
其实打印的这个语句的{}可以省略的,根据我以上分析的,LZ自己分析一下。


[解决办法]
带{}和不带{}肯定是不一样的。看看楼上高手们的解释你就会明白的!
[解决办法]
for(i=0;i <3;i++)
for(j=0;j <4;j++)
if(array[i][j]>max)max=array[i][j];


等价于
for(i=0;i <3;i++)
for(j=0;j <4;j++)
if(array[i][j]>max)max=array[i][j];
等价于
for(i=0;i <3;i++) { // K&R风格也是偶采用的风格
for(j=0;j <4;j++) {
if(array[i][j]>max)max=array[i][j];




for(i=0;i <3;i++)
} // 另外一种风格具体名字忘了
for(j=0;j <4;j++)

if(array[i][j]>max)max=array[i][j];


[解决办法]
max_value(int array[][4])
{
int i,j,k,max;
max=array[0][0];
for(i=0;i <3;i++)
for(j=0;j <4;j++)
if(array[i][j]>max)max=array[i][j];
return(max);
}
第一个for要执行的语句只有第二个for;
第二个for要执行的语句只有一个if语句;
只有一个语句的时候括号{}是可以省略的,
如果是多条语句的话,就必须加{}了

读书人网 >C语言

热点推荐