社区
C++ 语言
帖子详情
帮忙看看是怎么回事
grrrrrr
2004-08-01 05:44:02
vector<int> num;
int n;
while (cin >> n)
num.push_back(n);
for (int i = 0, n = 0; i != num.size(); i++)
n += num[i];
cout << n <<endl;
我跟踪了一下n,比如我输入50,60,70,在for循环体内n最后增加到了180。可是到了cout那一行,n就变成了最后输入的那个数,也就是70。我要晕了,谁帮忙看看啊?
Dev-Cpp 4.9.8.10
...全文
132
5
打赏
收藏
帮忙看看是怎么回事
vector num; int n; while (cin >> n) num.push_back(n); for (int i = 0, n = 0; i != num.size(); i++) n += num[i]; cout << n <<endl; 我跟踪了一下n,比如我输入50,60,70,在for循环体内n最后增加到了180。可是到了cout那一行,n就变成了最后输入的那个数,也就是70。我要晕了,谁帮忙看看啊? Dev-Cpp 4.9.8.10
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
grrrrrr
2004-08-01
打赏
举报
回复
啊,我怎么没有注意到,真不好意思...
p_s_w
2004-08-01
打赏
举报
回复
for (int i=0, n=0; ...)
定义了两个for循环局部变量i和n,这个n与前面定义的n是两个不同的变量,按照作用域规则,在for循环中的n将屏蔽for循环前面定义的n。
当for循环结束后,后一个n的作用域结束。cout输出的其实是前一个定义的n。
swordkitty
2004-08-01
打赏
举报
回复
因为在你的for循环中,for 每循环一次,你就把n赋值为0,所以在你用cout输出时,输出的是vector的最后一个元素,而不是它们的和;
kaphoon
2004-08-01
打赏
举报
回复
是这样的
int i=0,n=0;
等于定义了n,而不是单纯的赋值
所以有'70'这个结果
antijpn
2004-08-01
打赏
举报
回复
把
for (int i = 0, n = 0; i != num.size(); i++)
n += num[i];
改成
n=0;
for(int i=0;i!=num.size();i++)
n+=num[i];
怎么回事
?
今天无意点击图1中的“迷你博客”时,出现图2网页,是
怎么回事
啊?
谁知道这是
怎么回事
啊?
这是
怎么回事
啊?
51cto,这是
怎么回事
?
51cto,这是
怎么回事
?
外桂
怎么回事
??
有人在吗??
请问各位大佬这是
怎么回事
呢
C++ 语言
65,214
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章