给定若干行输入,每一行由若干个整数组成,要求对每行的整数进行求和,并输出每行的和。输入数据的行数未知,当输入结束时,程序停止。
1 2 3
4 5 6 7
8 9
6
22
17
本题与单行不定组输入的区别在于,我们需要处理多行输入,而不仅仅是单行输入。在单行不定组输入的情况下,我们只需要一次性读取整行数据并处理。而在多行输入的场景中,输入行数是不定的,程序需要循环不断读取每一行数据并分别进行处理。这就要求我们不仅要处理每行的数据,还需要在输入结束时能够识别并终止读取。具体请看代码实现!
#include <iostream>
#include <sstream>
using namespace std;
int main() {
string line;
while (getline(cin, line)) { // 持续读取直到 EOF
stringstream ss(line);
long long num, sum = 0;
while (ss >> num) { // 逐个读取每一行的整数
sum += num;
}
cout << sum << endl; // 输出这一行的和
}
return 0;
}
getline(cin, line):使用 getline() 逐行读取输入,直到遇到文件结束符(EOF)。stringstream:使用 stringstream 对每行进行解析,并逐个提取其中的整数。while (cin) 循环会持续读取每一行输入,直到遇到 EOF。Scanner.hasNextLine()import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextLine()) { // 持续读取直到 EOF
String line = sc.nextLine();
String[] numbers = line.split(" ");
long sum = 0;
for (String num : numbers) {
if (!num.isEmpty()) { // 防止处理空字符串
sum += Long.parseLong(num);
}
}
System.out.println(sum); // 输出这一行的和
}
}
}
sc.hasNextLine():在循环中判断是否还有下一行输入,直到输入结束。split(" "):使用 split() 按空格分割每行输入,得到字符串数组。for line in sys.stdinimport sys
for line in sys.stdin: # 持续读取直到 EOF
numbers = map(int, line.split()) # 将每行按空格分割,并转换为整数
print(sum(numbers)) # 输出该行的和
sys.stdin:使用 sys.stdin 来持续读取标准输入,直到 EOF。split():按空格分割输入行,并使用 map(int, ...) 将分割出的字符串转换为整数。sum():对分割出的整数列表进行求和。bufio.Scannerpackage main
import (
"bufio"
"fmt"
"os"
"strconv"
"strings"
)
func main() {
scanner := bufio.NewScanner(os.Stdin) // 创建读取器
for scanner.Scan() { // 持续读取直到 EOF
line := scanner.Text()
nums := strings.Fields(line) // 按空格分割
sum := 0
for _, num := range nums {
n, _ := strconv.Atoi(num) // 将字符串转换为整数
sum += n
}
fmt.Println(sum) // 输出和
}
}
scanner.Scan():使用 bufio.Scanner 持续读取每一行输入,直到遇到 EOF。strings.Fields():按空格分割每行输入,返回字符串数组。strconv.Atoi():将字符串数组转换为整数并进行求和。EOF 处理:
Ctrl+D 在 Linux/Mac 或 Ctrl+Z 在 Windows 来表示结束)。while(getline),Java 的 hasNextLine(),Python 的 sys.stdin,以及 Go 的 bufio.Scanner()。多行输入处理:
字符串分割与整数转换:
这个题目的重点是处理不定组的输入,使用合适的方法读取直到输入结束,并对每行进行解析和处理。通过这个题目可以熟练掌握各语言中处理多行不定输入的技巧。
本题属于以下题库,请选择所需题库进行购买