C++中如何实现连加

lightorx 2011-04-15 10:56:18
我想先任意输入几个数,回车后让程序把这几个数相加的结果显示出来,输入数据的个数是不确定的,有时多有时少。有谁知道的,请指点
...全文
997 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
huer0625 2011-04-15
  • 打赏
  • 举报
回复
while(cin >> val) //循环求和,知道输入Ctrl+Z结束符
{
c =cin.get();
if (c == '\n')
break;

sum += val;
}

重发一下
huer0625 2011-04-15
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 p95635746 的回复:]

C/C++ code

int val; //输入的值,假设为整形
int sum = 0;
while(cin >> val); //循环求和,知道输入Ctrl+Z结束符
{
sum += val;
}
[/Quote]
8楼,这个语句多了一个分号:
while(cin >> val); //循环求和,知道输入Ctrl+Z结束符

应该是:
while(cin >> val)

顺便改了一下你的程序,支持回车的时候,就结束计算:
supertool@supertool-desktop:~/test$ cat sum.cpp 
#include <iostream>
using namespace std;
int main()
{
int val; //输入的值,假设为整形
int sum = 0;
char c;
while(cin >> val) //循环求和,知道输入Ctrl+Z结束符
{
c =cin.get();
if (c == '\n')
break;

sum += val;
}

cout << sum << endl;
return 0;
}
supertool@supertool-desktop:~/test$ c++ -Wall -g sum.cpp -o sum
supertool@supertool-desktop:~/test$ ./sum
1 2 3 4 5 6
15
supertool@supertool-desktop:~/test$
驴被脑袋踢了 2011-04-15
  • 打赏
  • 举报
回复
慢慢来,别一下就STL了,这种用循环就行,就像8楼,也可以设置一个数字,比如如果输入了-1,那么就结束

int val; //输入的值,假设为整形
int sum = 0;
cin >> val;
while(val != -1); //循环求和,知道输入Ctrl+Z结束符
{
sum += val;
cin >> val;
}

书虫 2011-04-15
  • 打赏
  • 举报
回复
用stl可以,向你推荐一本书:c++标准模板库
玖伍叁柒 2011-04-15
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 p95635746 的回复:]

C/C++ code

int val; //输入的值,假设为整形
int sum = 0;
while(cin >> val); //循环求和,知道输入Ctrl+Z结束符
{
sum += val;
}
[/Quote]

就这样
书虫 2011-04-15
  • 打赏
  • 举报
回复
用stl中的输入输出流迭代器,推荐书籍:c++标准莫板库
p95635746 2011-04-15
  • 打赏
  • 举报
回复
是直到,输错了
p95635746 2011-04-15
  • 打赏
  • 举报
回复

int val; //输入的值,假设为整形
int sum = 0;
while(cin >> val); //循环求和,知道输入Ctrl+Z结束符
{
sum += val;
}
a170188197 2011-04-15
  • 打赏
  • 举报
回复
accumulate
direction917 2011-04-15
  • 打赏
  • 举报
回复
链表?向量?或者一边输入一边加。
可爱的小莱 2011-04-15
  • 打赏
  • 举报
回复
分析字符串,动态数组,相加,输出
Jim_King_2000 2011-04-15
  • 打赏
  • 举报
回复
输入的数据用istream_itarator来表示。连加用accumulate。

istream_iterator<int> input_first(cin), input_last;
cout << accumulate(input_first, input_last, 0) << '\n';

用Ctrl+Z结束输入。
bm7638 2011-04-15
  • 打赏
  • 举报
回复
用一个函数去处理,定义一个静态变量去控制
無_1024 2011-04-15
  • 打赏
  • 举报
回复
重载>> 然后用一个静态变量来统计每次输入的数字的和
ouyh12345 2011-04-15
  • 打赏
  • 举报
回复
用vector保存数组
回车后,遍历数组
Freedom 2011-04-15
  • 打赏
  • 举报
回复
好好去看看容器的相关知识吧
tyhello 2011-04-15
  • 打赏
  • 举报
回复
二楼的方法很给力,一楼的比较容易实现~
wei801516 2011-04-15
  • 打赏
  • 举报
回复

#include <iostream>
#include <vector>

using namespace std;
int main
(
vector<int> v;
int i;
while (cin >> i)
{
v.push_back(i);
}
int a = accumulate(v.begin(),v.end(),0);
cout << a << endl;
return 0;
)
wukongburu 2011-04-15
  • 打赏
  • 举报
回复
八楼很适合你!
antion692980794 2011-04-15
  • 打赏
  • 举报
回复
8L适合初学者~
STL的另说吧

64,266

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧