cuilllinn 2021-07-05 22:33 采纳率: 100%
浏览 21

牛客网刷题遇到的问题

描述
数据表记录包含表索引和数值(int范围的正整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。

输入描述:
先输入键值对的个数
然后输入成对的index和value值,以空格隔开

输出描述:
输出合并后的键值对(多行)

示例1
输入
4
0 1
0 2
1 2
3 4
输出
0 3
1 2
3 4
我(编程小白)的代码无法输出结果,想知道沿着我思路的解题方法,我看到题解map什么的,可以列出,但务必帮忙修改我的!谢谢

#include<iostream>
#include<string>
using namespace std;
int main()
{
    int num;
    string val;
    char count[10]={0};
    cin >> num;
    for(int i=0;i<num-1;i++){
        getline(cin, val);
        count[val[0]]+=(int)val[2];
    }
    for(int j=0;j<10;j++){
        if (count[j]!=0){
            cout << j << count[j] << endl;
    }}
    return 0;
}

还有个问题就是我想输出a(空格)b,但按照百度的cout << a << '' << b << endl ,''下面会有红线是为什么?

  • 写回答

1条回答 默认 最新

  • cuilllinn 2021-07-06 21:38
    关注

    后来发现题目给了是int型整数,不是字符串。。修改为

    #include<iostream>
    #include<string>
    using namespace std;
    int main()
    {
        int num;
        int a1, a2;
        int count[10]={0};
        cin >> num;
        for(int i=0;i<num;i++){
            cin >> a1 >> a2;
            count[a1]+=a2;
        }
        for(int j=0;j<10;j++){
            if (count[j]!=0){
                cout << j << " " << count[j] << endl;
        }}
        return 0;
    }
    
    
    
    评论

报告相同问题?