Heloker 2020-02-22 13:18 采纳率: 100%
浏览 584
已采纳

PAT乙级1004不使用结构体时全测试点格式错误

初学者,因为无法独自解决此问题,所以想请教一下各位大大

之前有看过论坛里面一些大大写的此题的代码,但是最后的cout语句基本是一样的

所以不太明白格式错误是什么问题导致的...

代码如下(C++语言,提交时编译器为C++(g++)),提交时没有加入注释内容

#include<string>
#include<iostream>
using namespace std;
int main(void)
{
    int n, i, j, max,min;
    string s[10000];//因为题目只提及n>0
    string num[10000];//所以声明了较大的数组
    int grade[10000];
    cin >> n;//输入学生数量
    for (i = 1; i <= n; i++) {
        cin >> s[i] >> num[i] >> grade[i];
        cout << endl;
    }//依次输入学生信息

    max = min = 1;
    for (j = 1; j <= n; j++) {
        if (grade[j] > grade[max]) 
            max = j;
        if (grade[j] < grade[min])
            min = j;
    }//比较成绩的高低

    cout << s[max] << " " << num[max] << endl;//最高
    cout << s[min] << " " << num[min] << endl;//最低
    return 0;
}

提交结果

在上面的代码里我并没有使用结构体,这道题是一定要用结构体的吗?

另外还看到有的大大没有在输出最低成绩的行末尾加endl,我尝试之后也是一样的格式错误结果...
orz

参考过其他大大的文章:

PAT乙级1004-作者strivinging

PAT 1004成绩排序(解决部分正确的原因)-作者linluoluo

PAT 1004 成绩排名 (20 分)-fyy_lufan(主要还是看了这位大大的文章才考虑不用结构体)

提前感谢各位大大的解答!

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-02-22 14:08
    关注

    其中姓名和学号均为不超过10个字符的字符串,成绩为0到100之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。
    既然能保证成绩都不相同,而成绩在0-100之间,那么学生人数应该最大不超过101
    你数组搞小一点(102就可以了)看看。

    另外

        for (i = 1; i <= n; i++) {
            cin >> s[i] >> num[i] >> grade[i];
            cout << endl; //这里的cout似乎没用,去掉
        }//依次输入学生信息
    

    问题解决的话,请点下采纳

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码