1. 首页 > 科技

int i{1}; for (int i=1; i <= 6; i++) { cout << "i="<<i&

int i{1}; for (int i=1; i <= 6; i++) { cout << "i="<<i<<endl; } cout << "i=" <<i<< endl;

int i,x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i+

首先,a是一个3*3的二维数组;

然后我们看下代码,稍微调整一下:得到如下的格式:

for(i=0;i<3;i++)

printf("%d",a[2-i][i]);

也就是在for循环中,输出数组的一个变量,具体是哪个值呢?我们继续看;

for循环中,i从0开始直到i=2循环结束,每次循环取的值为数组中的第(2-i)行,第i列的值。因此,依次取的值为a[2][0], a[1][1], a[0][2]。因此,这段程序输出的就是一个次对角线上的数据。

a[2-i][i]表示的是二维数组中的第(2-i)行,第i列的值。

循环中的++i和i++

在这个循环里我感觉没有不同,比如看这两个子程序运行结果是一样的:1、#include<stdio.h>

void main()

{ int i;

for(i=1;i<=100;++i)

{printf("%d,",i);

if(i%10==0)

printf("\n");}

}

2#include<stdio.h>

void main()

{ int i;

for(i=1;i<=100;++i)

{printf("%d,",i);

if(i%10==0)

printf("\n");}

}

运行结果都是输出从一到一百。

但如果i++和++i在别的地方可能是有区别的

main(){int i,b,k=0;for(i=1;i<=5;i++){b=i%2;while(b-->=0) k++;

是2012年的问题了 想必楼主已经知道了答案

看了上面的答案解释的不是很清晰,我这里放一个清晰版的 以便以后的筒子们看

当最后一行加上输出语句时printf("%d,%d",k,b);

输出结果为 k=8,b=-2

现在 我们来模拟一下 for循环中 当i=5时的运行情况

——————第一次

i=5;

b=5%2;(此时b=1)

while(b-->=0)k++;("--"为先判断再自减,b=1>=0执行k++,b再自减b=0,k=6+1=7)

——————第二次

while(b-->=0)k++;("--"为先判断再自减,b=0>=0执行k++,b再自减b=-1,k=7+1=8)

——————第三次

while(b-->=0)k++;("--"为先判断再自减,b=-1>=0不成立 不执行k++,但是已经进行了“b-->=0”这一步的判断 所以依旧执行b--操作 此时 b再自减b=-2)

#include<stdio.h> main() { int i,sum=0; for(i=1;i<=3;sum++,i++) sum+=i; printf("%d\n",sum); }求解释

陷阱题,for循环中的sum++而不是i++导致死循环