卡码网C++语言基础课 | 5. A+B问题V

36 阅读1分钟

题目描述

image.png

image.png

第一次提交

#include<iostream>
using namespace std;
int main(){
    int n;
    while(cin >> n){
        int i;
        while(cin >> i){
            int a;
            int sum = 0;
            while(i--){
                cin >> a;
                sum += a;
            }
            cout << sum << endl;
        }
    }

}

完成了题目所需基本功能但是不会排版,也并不能完成多组数据

题目分析

提示信息中强调了测试数据不止一组,也就是有多个n的输入,需要在while循环内嵌套一个while(n--){}的循环来完成这点

#include<iostream>
using namespace std;
int main() 
{
  // 定义变量n,表示该组测试有n行
    int n;
   // 可能会有很多组数据,所以需要持续接收n,直到停止输入
    while(cin >> n) {
      // 因为有n行数据,需要计算每行的整数和,使用while循环控制代码执行n次,当n为0的时候,结束循环
       while(n--) {
         
       }
    }
}

输出一个空行

cout << endl;

但题目只要求每组数据内部之间要有空行,两组数据之间不空。针对这一点还需要添加一个if语句的判断条件,故正确答案如下:

#include<iostream>
using namespace std;
int main(){
    int n;
    while(cin >> n){
        while(n--){
            int i;
            cin >> i;
            int a;
            int sum = 0;
            while(i--){
                cin >> a;
                sum += a;
            }
            cout << sum << endl;
            if(n != 0)cout << endl;
        }
    }
}

总结

至此A+B问题结束!

image.png