C语言数组学习问题 循环方式给数组赋值

main()

/*采用循环的方式给数组赋值*/
{

int a[3],i;

/*定义一个长度为3的数组*/

for(i=0;i<3;i++)
/*循环赋值*/

{

a[i]=i;

/*这个循环我就死活理解不了。。 */

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

{

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

}
getch();
}

大家帮忙详细解释下
最好通俗易懂

就是for循环没学会吧。那就讲一下for循环和数组应用。
就拿你的这个程序举例子好了,定义了一个整型数组a[3],然后看这段代码:
for(i = 0; i < 3; i++)
{
a[i] = i;
}
for循环的括号里面有三个东西,for(赋初值; 循环条件; 步长)
赋初值就是给循环变量(相当于一个计数器)赋初值,当然也可以初始化其他的变量。第一个分号后面是循环条件,只有满足循环条件才执行循环体内部的语句,不满足则跳出循环。第二个分号后面是循环变量的自增步长,就是每次循环结束以后,循环变量要增加或减少多少,当然也可以执行其他的运算,按照需求来。
运算过程如下:
进入for循环后,
第一次循环:i = 0,给变量 i 赋初值为0,然后判断 i < 3,如果i 是 小于3的,那么进入循环内部执行for循环里面的语句,即a[i] = i。
这里,i 是等于 0 的,那么a[i]就是a[0],a[i] = i的意思就是a[0] = 0,也就是说,给数组a的第一个元素(即下标为0的元素)赋值为0。接着a[i]=i这句执行完了,接着执行的是for循环的步长自增语句,即i++。i++和i=i+1是等价的,所以执行完这句语句以后,i的值从0变成了1。到这里,第一次循环就结束了,现在执行第二次循环。
第二次循环:第一次循环结束以后,进入第二次循环之前,先要执行for循环的第一个分号后面的语句,就是循环条件判断。即i<3。在第一次循环结束后,i的值是1,那么1是小于3的,因此符合该条件,开始执行循环体内部的语句a[i] = i,这里,i的值是1,那么a[i]就是a[1]了,也就是数组a的第二个元素(即下标为1的元素),执行完以后,又跳回for循环的第二个分号后面了,执行i++,执行完i++以后,i的值从1变成了2。接着开始第三次循环。
如此往复,第三次循环结束以后,i的值变成了3,在执行第四次循环的时候,首先进入for循环的循环条件判断,也就是第一个分号后面的语句,i<3,这个时候i的值是3,3<3是不成立的,因此从这里开始跳出循环,第四次循环也就不执行了。
循环结束以后,数组a就变成这样了:a[0]=0,a[1]=1,a[2]=2。而i的值在此时为3。
自己一步一步写出来for循环的执行步骤就好了。
总结:
for(赋初值; 循环变量; 循环变量自增)
{
循环体;
}
这句语句的执行顺序是:
1.赋初值。
2.判断循环条件,若满足条件执行第3步,若不满足条件执行第6步。
3.执行循环体语句。
4.循环变量自增。
5.执行第2步。
6.跳出循环。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-27
int a[3],i; 真不明白你是怎么学习的,你问的问题我都没怎么看懂,什么叫刚开始定义的i是自增运算符呀?这里在定义一个存放整型常量的变量i,不是什么自增运算符,什么叫循环时调用了?这句话我是想不明白,你想问什么。

a[i]=i; 你问“这里a[i]又调用了次,是什么意思?什么叫调用2次也行呀?”不明白你问什么,在这里i是一个变量(什么叫变量不用我解释吧,和初中数学时的变量的函义一样,就是值会变的量),因此i的值是会变的,因为在for循环中对i赋了初始0,也就是i=0,所以第一次循环时i=0,然后使用i=0代替a[i]=i中的i就得到a[0]=0;其中a是一个数组不用解释吧?数组就是能存放多个同种类型数据的变量,比如int a[3]就表示数组a可以存放3个int型的值,比如a[0]=?或者a[1]或者a[2]=?在这里只是没有对其数组中的成员赋值,也就是数组中保存的值究竟是什么还不知道,而在for循环中就得到了他们的值,也就是a[0]=0,a[1]=1,a[2]=2,注意数组是以下标来访问他所访问的其中的值,而且是以0开始。

下面是抄的楼上那位仁兄的

第一次,执行赋值语句i=0,然后判断语句i<3是否成立,执行循环体a[0]=0(因为此时i为0),完后i自加,此时i值变为1;
第二次,i=1,判断语句i<3成立,执行循环体a[1]=1(因为此时i为1),完后i自加,此时i值变为2;
第三次,i=2,判断语句i<3成立,执行循环体a[2]=2(因为此时i为2),完后i自加,此时i值变为3;
第四次,i==3,判断语句i<3不成立,循环结束。
第2个回答  2013-10-27
先是利用循环赋值 然后利用循环输出
相似回答
大家正在搜