c++输入一串数字并单个求和
时间: 2024-09-17 19:09:32 浏览: 86
在C++中,你可以使用`std::cin`从用户那里获取一串数字,并通过循环逐个累加。下面是一个简单的示例程序:
```cpp
#include <iostream>
using namespace std;
int main() {
int sum = 0; // 初始化总和为0
char input; // 存储每个输入字符
cout << "请输入一串数字,以空格分隔:" << endl;
while (cin >> input) { // 只要还有输入
if (input != ' ') { // 如果不是空格
sum += input - '0'; // 将字符转换为整数并加入总和
} else { // 遇到空格则表示一个数字结束
break;
}
}
cout << "输入的数字之和为: " << sum << endl;
return 0;
}
```
这个程序会提示用户输入一系列数字,每次输入一个数字后按空格键继续,直到遇到空格为止。然后它将所有输入的数字加起来。
相关问题
C++编写黑板上老师写了一行 N 个正整数,老师要考同学们的倒背如流 能力,让学生从右向左读这些数字,并求出他们的和。例如写了 3 个 整数: 123 45 60 。结果是:06+54+321=381
在C++中,解决这个问题可以使用字符串处理和数组操作。首先,将老师的输入串(由空格分隔的整数序列)转换成字符数组或者`std::vector<int>`,然后遍历这个数组从右到左,依次累加每个数字。由于是从右向左读,我们需要对每一个字符进行ASCII码减去'0'来获取对应的数值,然后加上当前的总和。下面是一个简单的示例:
```cpp
#include <iostream>
#include <string>
int reverseSum(const std::string& numbers) {
int total = 0;
for (int i = numbers.length() - 1; i >= 0; i--) {
char digit = numbers[i] - '0'; // 字符转数字
total += digit;
}
return total;
}
int main() {
std::string input = "123 45 60";
std::istringstream iss(input);
std::string num;
while (iss >> num) { // 分割数字
total += reverseSum(num); // 调用逆序求和函数
}
std::cout << "The sum is: " << total << std::endl;
return 0;
}
```
在这个代码里,我们先从输入字符串中提取单个数字,然后计算并累加逆序的数值。最后返回总和即可。
阅读全文