黑马程序员技术交流社区

标题: 当b=1时,这段代码的结果为何为5啊 [打印本页]

作者: fangdanjames    时间: 2014-11-26 00:48
标题: 当b=1时,这段代码的结果为何为5啊
#include <stdio.h>

int main()

{
   
   
    int pingnian[]={1,2,3};
   
    int runnian[]={1,3,5};
    int b=0;
    scanf("%d",&b);
    int sum = 0;
    for (int i=0;i<2;i++)
    {
        if (b==1)
        
        {
            sum=pingnian[i];
        }
     
    sum+=runnian[i];
    }
   
    printf("%d\n",sum);
}
作者: joykerl    时间: 2014-11-26 01:57
1,当b==1时,程序进入:sum = pingnian[i]   结果为 1
2,.跳出if语句,sum = 1 + reunion[0]  即 sum = 1 + 1   第一循环的结果为2
3,进入i = 1的循环,sum = sum + reunion[i]    此时sum的值是2,i的值是1,就是reunion[1] = 3   即:sum = 2 + 3
4,最终结果为5
作者: caozhichao    时间: 2014-11-26 02:31
sum = pingnian[1] + runnian[1];
作者: HM_lpn    时间: 2014-11-26 08:51
for循环,共有两轮循环。在第一轮循环中,由于b==1值为真,所以,sum=pingnian[0]=1;接着执行sum=sum+runnian[0]=1+1=2;(其中,等号右边的sum是sum=pingnian[0]=1);在第二轮循环中,由于b==1为真,sum=pingnian[1]=2;接着执行sum=sum+runnian[1]=2+3=5;(其中,等号右边的sum是sum=pingnian[1]=2);第一轮的sum值已被第二轮所得的新sum值覆盖掉了
作者: 云无心ii    时间: 2014-11-26 13:12
楼主数组定义的名字我想半天不知道啥意思,结果一楼说的很清楚了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2