c++蓝桥等考,输入若干行数后,求它们的和
蓝桥等考中输入格式需严格匹配样例,如多行输入以换行分隔。
参考1:
#include <iostream>
using namespace std;
int main()
{ int a,s=0;
cin>>a;
s+=a;
while (!(cin.peek()=='\n'||cin.peek()==EOF)){
cin.ignore();
cin>>a;
s+=a;
}
cout<<s;
return 0;
}
参考2:使用getline读取整行 该方法逐行读取输入,适合每行有多个整数的场景。核心是用stringstream解析每行数字,循环直到标准输入结束(如输入Ctrl+D或Ctrl+Z)。
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main() {
string line;
while (getline(cin, line)) {
int sum = 0;
int x;
stringstream ss(line);
while (ss >> x) {
sum += x;
}
cout << sum << endl;
}
return 0;
}
#include<iostream>
#include<string>
#include<sstream>
using namespace std;
int main()
{
string line;
while(getline(cin, line))
{
int sum = 0, x;
stringstream ss(line); // 将 line 复制到 stringstream ss 中
while(ss >> x) sum += x; // 相当于输入一个个的单词,自动将其转化换为数字
cout << sum << "\n";
}
return 0;
}
参考3:循环输入整数 此方法直接读取整数,自动跳过空白字符(包括换行),更简洁。循环通过检查输入流状态(如cin.fail())判断结束,适用于连续整数输入。
#include <iostream>
using namespace std;
int main() {
int sum = 0;
int num;
while (cin >> num) {
sum += num;
}
cout << sum << endl;
return 0;
}

浙公网安备 33010602011771号