| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 904 人关注过本帖
标题:为什么给变量赋值的语句改变位置后运行结果不一样啊
只看楼主 加入收藏
雾染烟色
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2009-1-30
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:3 
为什么给变量赋值的语句改变位置后运行结果不一样啊
#include <stdio.h>
int main (void)
{
  int n, number, summary = 0, counter;
  for (counter = 1; counter <= 5; counter++)
{
    printf ("what number do you want? ");
    scanf ("%i", &number);
    for (n = 1; n <= number; n++)
        summary += n;
      printf ("The number %i is %i\n\n", number, summary);
      getch();
}
      return 0;
}
为什么上面的运行结果是错的 把summary = 0这个给变量赋值这个语句写到scanf函数下面的一行结果就没错误啊?

int n, number, summary, counter;


scanf ("%i", &number);
 summary = 0;     
for (n = 1; n <= number; n++)
改成这样就没问题 请问为什么?
搜索更多相关主题的帖子: 结果 位置 语句 变量 赋值 
2009-12-22 00:05
liangwenbc
Rank: 3Rank: 3
来 自:广州
等 级:论坛游侠
帖 子:168
专家分:174
注 册:2008-6-11
收藏
得分:10 
scanf ("%i", &number);
summary = 0;     
即每次输入number时先把summary清0,比如你输入的number=5,执行语句 for (n = 1; n <= number; n++)
        summary += n;
后summary=15,下次循环时比如你输入3,执行语
句for (n = 1; n <= number; n++)
        summary += n;
后结果就是1+2+3+15=21了而不是1+2+3=6

qq7434391
2009-12-22 01:54
liangwenbc
Rank: 3Rank: 3
来 自:广州
等 级:论坛游侠
帖 子:168
专家分:174
注 册:2008-6-11
收藏
得分:0 
也就是说如果你把summary = 0放上面程序只是定义时赋值为0,以后值会累加在变量summary里面

qq7434391
2009-12-22 01:58
雾染烟色
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2009-1-30
收藏
得分:0 
哦 谢谢了
2009-12-28 16:39
快速回复:为什么给变量赋值的语句改变位置后运行结果不一样啊
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020930 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved