文章目录

  • 背景
  • 内容
  • 总结
  • reference


背景

现在还不会输入输出, 借此机会练习一下。

内容

1.接收多个a+b, 这里没数据就自己退出while循环了。 

#include<iostream>
using namespace std;

int main(){
    int a = 0 , b = 0;
    while(cin>>a>>b){
        cout<<a+b<<endl;
    }


    return 0;
    
}


2 ` n个a+b

输入描述:
输入第一行包括一个数据组数t(1 <= t <= 100)
接下来每行包括两个正整数a,b(1 <= a, b <= 10^9)
输出描述:
输出a+b的结果

#include<iostream>
using namespace std;

int main(){
    int n;
    int a,b;
    cin>>n;
    for(int i = 0 ;i < n; i++){
        cin>>a>>b;
        cout<<a+b<<endl;
    }


}


3` 
链接:https://ac.nowcoder.com/acm/contest/5657/C
来源:牛客网

输入描述:
输入包括两个正整数a,b(1 <= a, b <= 10^9),输入数据有多组, 如果输入为0 0则结束输入
输出描述:
输出a+b的结果

#include<iostream>
using namespace std;
int main(){
    int a, b ;
    while(cin>>a>>b){
        if(a==0&&b==0)break;
        else cout<<a+b<<endl;
        
    }


}


4` 
链接:https://ac.nowcoder.com/acm/contest/5657/D
来源:牛客网

输入描述:
输入数据包括多组。
每组数据一行,每行的第一个整数为整数的个数n(1 <= n <= 100), n为0的时候结束输入。
接下来n个正整数,即需要求和的每个正整数。
输出描述:
每组数据输出求和的结果
示例1
输入
复制
4 1 2 3 4
5 1 2 3 4 5
0
输出
复制
10
15


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

}


5`

链接:https://ac.nowcoder.com/acm/contest/5657/E
来源:牛客网

输入描述:
输入的第一行包括一个正整数t(1 <= t <= 100), 表示数据组数。
接下来t行, 每行一组数据。
每行的第一个整数为整数的个数n(1 <= n <= 100)。
接下来n个正整数, 即需要求和的每个正整数。
输出描述:
每组数据输出求和的结果
示例1
输入
复制
2
4 1 2 3 4
5 1 2 3 4 5
输出
复制
10
15
C++(clang++11) 
ACM模式
   

1
#include<iostream>
2
using namespace std;
3

4
int main(){
5
    int a , b , n;
6
    cin>>n;
7
    for(int i = 0; i < n; i++){
8
        cin>>a;
9
        int sum = 0;
10
        for(int j = 0; j < a;j++){
11
            cin>>b;
12
            sum +=b;
13
        }
14
        cout<<sum<<endl;
15
    }
16
    return 0;
17
}


6` 
链接:https://ac.nowcoder.com/acm/contest/5657/F
来源:牛客网

输入描述:
输入数据有多组, 每行表示一组输入数据。
每行的第一个整数为整数的个数n(1 <= n <= 100)。
接下来n个正整数, 即需要求和的每个正整数。
输出描述:
每组数据输出求和的结果
示例1
输入
复制
4 1 2 3 4
5 1 2 3 4 5
输出
复制
10
15


#include<iostream>

using namespace std;

int main(){
    int n,a,sum;
    while(cin>>n){
        int sum;
        for(int i = 0 ; i < n;i++){
            cin>>a;
            sum += a;
        }
        cout<<sum<<endl;
        sum = 0;
    }
}






7 链接:https://ac.nowcoder.com/acm/contest/5657/G
来源:牛客网

输入描述:
输入数据有多组, 每行表示一组输入数据。

每行不定有n个整数,空格隔开。(1 <= n <= 100)。
输出描述:
每组数据输出求和的结果
示例1
输入
复制
1 2 3
4 5
0 0 0 0 0
输出
复制
6
9
0

#include<iostream>

using namespace std;

int main(){
    int n,a,sum;
    while(cin>>n){
        sum = sum +n;
        if(cin.get()=='\n'){  // 读一个字符,包括空格
            cout<<sum<<endl;
            sum = 0;
        }
    }
}        



链接:https://ac.nowcoder.com/acm/contest/5657/K
来源:牛客网

输入描述:
输入有多组测试用例,每组空格隔开两个整数
输出描述:
对于每组数据输出一行两个整数的和
示例1
输入
复制
1 1
输出
复制
2


#include<iostream>
using namespace std;
int main(){
    long a,b;
    while(cin>>a>>b){
        cout<<a+b<<endl;

     exit(0);   
    }
}



//  字符串处理  , 会这一个就很了灵活了, 啥都能干。 
# include <bits\stdc++.h>
using namespace std;
int main(){

    int n ;
    cin>>n;
    string str;
    fflush(stdin);//用这个可以全部清空
    while(gets(cin,str,' ')){// 这是以空格为结束, 可以设置以默认换行结束。 cin.getline()类似,但是cin.getline()属于istream流,而getline()属于string流,是不一样的两个函数。
        if(str == " ")break;
        cout<<str<<endl;
        // if(cin.get()=='\n')break; // 读取一个字符、                
    }
    cout<<"hello"<<endl;

}

总结

  1. 自己对 输入的理解更深入了一些, 如果我们是vector这种,多种测试样例的话就设置成while,然后放入数据到vector之中,如果检测到\n就进行计算,然后把vector清空继续做。笔试前一定要看这些输入的代码。尤其是那些可以输入不知道多少行的
  2. 普通的cin对空格或者回车 tab都认为进入下一个。 如果没有的话,直接退出了。
  3. cin.getline与cin.get的区别是,cin.getline不会将结束符或者换行符残留在输入缓冲区中。会读到接收的数组或者字符串中。

reference

  1. 输入参照文章
  2. fflush(stdin);//用这个可以全部清空
  3. 这个也可以看看, 很好的输入参照文章。