你倒是敲代码鸭 2021-03-29 10:41 采纳率: 0%
浏览 17

pat 乙级1004 我的代码总是显示 段错误,求前辈指点

#include<iostream>
using namespace std;
#include<cstring>
int main()
{
    int i,j,n,max=0,min=0;
    int score[10];
    string num[10];
    string name[10];
    cin>>n;
    for(i = 0;i < n;i++){
        cin>>name[i]>>num[i]>>score[i];
    }
    for(i =0;i < n;i++){
        for(j = 0;j < n-i;j++){
            if(score[j+1]>score[j])
            max = j+1;
            else if(score[i]<=score[0])
            min = i;
        }
    }
        cout<<name[max]<<" "<<num[max]<<endl;
        cout<<name[min]<<" "<<num[min]<<endl;
        return 0;
}

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-07-23 20:39
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    这段代码有一些问题。首先,using namespace std; 这行是不必要的,因为 C++ 的标准库已经包含在你的源文件中。其次,你需要检查 intstring 类型是否正确定义了。

    以下是修改后的代码:

    #include<iostream>
    #include<string>
    
    using namespace std;
    
    int main()
    {
        int i, j, n;
        double max = 0.0, min = 999999999.0;
        string name[10], num[10];
        
        cin >> n;
        
        for (i = 0; i < n; i++)
        {
            cin >> name[i] >> num[i] >> num[i].back() - '0';
            
            // 将字符串转换为整数
            stringstream ss(num[i]);
            ss >> max;
            min = ss.str().back();
        }
        
        cout << "Max: " << name[max] << ", Min: " << name[min] << endl;
        
        return 0;
    }
    

    现在,你应该能够编译并运行这段代码了。

    评论

报告相同问题?