C++ 牛客oj输入输出 总结!请笑纳

牛客上面做笔试,输入输出是真的恶心,没有之一!!!! 还没有代码提示,恶心。。。

https://ac.nowcoder.com/acm/contest/320?tdsourcetag=s_pctim_aiomsg    //机票直达

以下是参考牛客上面的一个输入输出的oj,然后汇总,

自己在写代码的时候,一定要酌情处理数据,以下只是样例,别无脑照抄!!!

按照你的题目要求去处理数据就行!!!!

记得看样例和输入输出描述!!!!

 

计算a+b
-----------------------------------------------------------
输入描述:
输入包括两个正整数a,b(1 <= a, b <= 10^9),输入数据包括多组。

输出描述:
输出a+b的结果

示例1

输入:
1 5
10 20

输出:
6
30

--------------------------------------------------------
代码:

#include <iostream>
using namespace std;

int main()
{
    int n,m;
    while(cin>>n>>m)
    {
        cout<<n+m<<endl;        //处理数据
    }
    return 0;
}
计算a+b
-------------------------------------------------------------------

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

输出描述:
输出a+b的结果

示例1
输入:
2
1 5
10 20

输出:
6
30

-------------------------------------------------------------------
代码:

#include <iostream>
using namespace std;
int main(){
    int count;
    cin>>count;
    while(count--){
        int a,b;
        cin>>a>>b;
        cout<<a+b<<endl;    //处理数据
    }
    return 0;
}
计算a+b
----------------------------------------------
输入描述:
输入包括两个正整数a,b(1 <= a, b <= 10^9),输入数据有多组, 如果输入为0 0则结束输入

输出描述:
输出a+b的结果
示例1
输入:
1 5
10 20
0 0

输出:
6
30

--------------------------------------------------------
代码:

#include <iostream>
using namespace std;
int main(){
    int a,b;
    while(cin>>a>>b){
        if(a==b && a==0){
            break;
        }
        cout<<a+b<<endl;        //处理数据
    }
    return 0;
}
计算一系列数的和
----------------------------------------------
输入描述:
输入数据包括多组。
每组数据一行,每行的第一个整数为整数的个数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 num;
	while(cin>>num && num){
		int sum=0,tmp;
		while(num--){
			cin>>tmp;
			sum+=tmp;
		}
		cout<<sum<<endl;        //处理数据
	}
	return 0;
}
计算一系列数的和
------------------------------------------------------
输入描述:
输入的第一行包括一个正整数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
----------------------------------------------
代码:

#include<iostream>
using namespace std;
int main()
{
	int collen;    //表示行数
    cin>>collen;
    while(collen--)
    {
        int first;
        cin>>first;    //获取第一个数
		int sum=0,tmp;
		while(first--)
        {
			 cin>>tmp;
			 sum+=tmp;
		}
		cout<<sum<<endl;    //处理数据
	}
	return 0;
}
计算一系列数的和
-------------------------------------------------
输入描述:
输入数据有多组, 每行表示一组输入数据。
每行的第一个整数为整数的个数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 first;
    while(cin>>first)    //获取第一个数
    {
        int sum=0,tmp;
        while(first--)
        {
            cin>>tmp;
            sum+=tmp;
        }
        cout<<sum<<endl;    //处理数据
    }
	return 0;
}
计算一系列数的和
------------------------------------------------
输入描述:
输入数据有多组, 每行表示一组输入数据。
每行不定有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 ans = 0, a;
    while (cin >> a) 
    {
        ans += a;
        if(cin.get() == '\n') 
        {
            cout << ans << endl;       //处理数据
            ans = 0;
        }
    }
    return 0;
}
对输入的字符串进行排序后输出
-------------------------------------------------- 
输入描述:
输入有两行,第一行n
第二行是n个空格隔开的字符串

输出描述:
输出一行排序后的字符串,空格隔开,无结尾空格

示例1
输入:
5
c d a bb e
输出:
a bb c d e
--------------------------------------------------

代码:
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;

int main(){
    int num;
    cin>>num;
    string str;
    vector<string>res;
    while(cin>>str){
        res.push_back(str);
    }
    sort(res.begin(), res.end());
    for(int i = 0;i < num-1;i++){
        cout<<res[i]<<' ';        //处理数据
    }
    cout<<res[num-1]<<endl;    //注意 末尾是没有空格的     处理数据
    return 0;
}
对输入的字符串进行排序后输出
-------------------------------------
输入描述:
多个测试用例,每个测试用例一行。
每行通过空格隔开,有n个字符,n<100

输出描述:
对于每组测试用例,输出一行排序过的字符串,每个字符串通过空格隔开

示例1
输入:
a c bb
f dddd
nowcoder

输出:
a bb c
dddd f
nowcoder
-----------------------------------
代码:
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;

int main(){
    string str;
    vector<string>res;
    
    while(cin>>str)
    {
        res.push_back(str);
        if(getchar()=='\n')
        {
            sort(res.begin(), res.end());
            for(int i = 0;i < res.size()-1;i++)
            {
                cout<<res[i]<<' ';                //处理数据
            }
            cout<<res[res.size()-1]<<endl;    //注意 末尾是没有空格的   处理数据
            res.clear();
        }
    }
    return 0;
}
对输入的字符串进行排序后输出
-------------------------------------------------------
输入描述:
多个测试用例,每个测试用例一行。
每行通过,隔开,有n个字符,n<100

输出描述:
对于每组用例输出一行排序后的字符串,用','隔开,无结尾空格

示例1
输入:
a,c,bb
f,dddd
nowcoder

输出:
a,bb,c
dddd,f
nowcoder

-------------------------------------------------------
#include <iostream>
#include <vector>
#include <algorithm>
#include <sstream>
#include <string>

using namespace std;

int main()
{    
    string line;
    while (getline(cin, line)) 
    {
        istringstream sin(line);
        string str;
        vector<string> strs;
        
        while (getline(sin, str, ',')) 
        {
            strs.push_back(str);
        }
        
        sort(strs.begin(),strs.end());
        
        int num = strs.size() - 1;
        
        for(int i = 0; i < num; ++i) 
        {
            cout <<strs[i] <<',';
        }
        cout <<strs[num] <<'\n';
    }
    return 0;
}
每年前几场在线笔试编程题的时候,总有同学询问为什么我本地测试通过,自测也通过,提交代码系统却返回通过率0。
这不是系统的错,可能是因为
1.你对题目理解错了,你的代码只过了样例或你自己的数据
2.你的代码逻辑有问题,你的代码只过了样例或你自己的数据
总之就是你的代码只是过了样例和自测数据,后台的测试数据你根本不可见,要多自己思考。

这个题目如果你提交后通过率为0,又觉得自己代码是正确的,可以 点击查看 通过的代码

谨记:
当你笔试的时候怀疑系统或者题目数据有问题的时候请务必先怀疑自己的代码!
当你笔试的时候怀疑系统或者题目数据有问题的时候请务必先怀疑自己的代码!

请帮忙把这个练习专题发给你的朋友同学吧,感谢感谢
输入描述:
输入有多组测试用例,每组空格隔开两个整数
输出描述:
对于每组数据输出一行两个整数的和
-------------------------------------------------------------------------------
示例1
输入:
1 1

输出:
2


-----------------------------------------------------------------------------------
#include<iostream>
using namespace std;
int main()
{
    long long a,b;
    //int a,b;    //这个居然不行 我去 50的用例
    while(cin>>a>>b)
    {
        cout<<a+b;
    }
    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值