谁能帮我详细解释一下 下面这个C语言程序中几个地方
#include"stdio.h"main(){inta[3]={3*0};inti;for(i=0;i<3;i++)scanf("%d",&a[i]);for(i=1;...
# include"stdio.h"
main ()
{
int a[3]={3*0};
int i;
for(i=0;i<3;i++) scanf("%d",&a[i]);
for(i=1;i<3;i++) a[0]=a[0]+a[i];
printf("%d\n",a[0]);
getch();
}
&a[i] 中的i值在运行时 是怎样被赋值的 还有就是a[0]=a[0]+a[i]这条语句是怎样被赋值的 展开
main ()
{
int a[3]={3*0};
int i;
for(i=0;i<3;i++) scanf("%d",&a[i]);
for(i=1;i<3;i++) a[0]=a[0]+a[i];
printf("%d\n",a[0]);
getch();
}
&a[i] 中的i值在运行时 是怎样被赋值的 还有就是a[0]=a[0]+a[i]这条语句是怎样被赋值的 展开
6个回答
展开全部
for(i=0;i<3;i++) scanf("%d",&a[i]);
i是控制循环变量,在循环体每完成一次后i++,即i=i+1,这个语句的意思就是依次输入数组中的3个元素的值
for(i=1;i<3;i++) a[0]=a[0]+a[i];
a[0]=a[0]+a[i]即将a[0]+a[i]的值赋给a[0],得到一个新的a[0]值
i是控制循环变量,在循环体每完成一次后i++,即i=i+1,这个语句的意思就是依次输入数组中的3个元素的值
for(i=1;i<3;i++) a[0]=a[0]+a[i];
a[0]=a[0]+a[i]即将a[0]+a[i]的值赋给a[0],得到一个新的a[0]值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
&a[i] 中的i值在运行时 ,通过循环控制它的改变,for(i=0;i<3;i++),先i=0;一直加一,直到i<3;
for(i=1;i<3;i++)
a[0]=a[0]+a[i];
也是通过循环来控制的,先a[0]=a[0]+a[1];a[0]有个值;i++;i=2;
然后a[0]=a[0]+a[2];a[0]有个值;i++;i=3;
3>2;循环结束;
输出的是你输入数的和;
for(i=1;i<3;i++)
a[0]=a[0]+a[i];
也是通过循环来控制的,先a[0]=a[0]+a[1];a[0]有个值;i++;i=2;
然后a[0]=a[0]+a[2];a[0]有个值;i++;i=3;
3>2;循环结束;
输出的是你输入数的和;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
scanf()第二个参数是读取数据存放的地址,a[i]是数组中的变量,取他地址就要加个&了。
a[0]=a[0]+a[i]则很好理解了,数组中第1个成员的值等于它与a[i]的值之和。
a[0]=a[0]+a[i]则很好理解了,数组中第1个成员的值等于它与a[i]的值之和。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
main ()
{
int a[3]={3*0};
int i;
for(i=0;i<3;i++) scanf("%d",&a[i]);
//i=0,判断i<3(true),a[0]赋值,i+1(即i=1);
//i=1,判断i<3(true),a[1]赋值,i+1(即i=2);
//i=2,判断i<3(true),a[2]赋值,i+1(即i=3);
//i=3,判断i<3(false),跳出循环,(i=3);
for(i=1;i<3;i++) a[0]=a[0]+a[i];//假设a[0]=8,a[1]=4,a[2]=1;
//i=1,判断i<3(true),a[0](12)=a[0](8)+a[1](4),i+1(即i=2);
//i=2,判断i<3(true),a[0](13)=a[0](12)+a[2](1),i+1(即i=3);
//i=3,判断i<3(false),跳出循环,(i=3);
//结果a[0]=13;
printf("%d\n",a[0]);
getch();
}
{
int a[3]={3*0};
int i;
for(i=0;i<3;i++) scanf("%d",&a[i]);
//i=0,判断i<3(true),a[0]赋值,i+1(即i=1);
//i=1,判断i<3(true),a[1]赋值,i+1(即i=2);
//i=2,判断i<3(true),a[2]赋值,i+1(即i=3);
//i=3,判断i<3(false),跳出循环,(i=3);
for(i=1;i<3;i++) a[0]=a[0]+a[i];//假设a[0]=8,a[1]=4,a[2]=1;
//i=1,判断i<3(true),a[0](12)=a[0](8)+a[1](4),i+1(即i=2);
//i=2,判断i<3(true),a[0](13)=a[0](12)+a[2](1),i+1(即i=3);
//i=3,判断i<3(false),跳出循环,(i=3);
//结果a[0]=13;
printf("%d\n",a[0]);
getch();
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
赋值就是把右值赋值给左值,就先计算右面的数据,计算完以后给左值就行了
scanf是对地址的操作,所以要+&符号
scanf是对地址的操作,所以要+&符号
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询