pat A1025题报错warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attrib...

错误分析:没有仔细阅读题目,导致输出的结果各个参数的顺序不对,导致pat的报错原因。

收获;要熟读题目不能将计算机想象成人一样具有能自动识别的能力。

错误原因 将printf("%d %d %d\n",r,stu[i].local_number,stu[i].local_rank);中的stu[i].local_number和stu[i].local_rank的位置上搞反了,改为printf("%d %d %d\n",r,stu[i].local_number,stu[i].local_rank);后问题解决。

完整的程序是:

//需求分析:首先定义一个学生机构体,这个结构体里包括准考证号、考场号、成绩、总成绩排名,考场成绩排名

//编写一个对比函数cmp对比两学生的成绩,如果成绩一样则让准考证号小的在上边

//按照考场输入考生成绩以及信息,每个考场排序一次。将须有考场循环一遍

//最后用sort函数排序所有的考生成绩

#include <cstdio>

#include <algorithm>

#include <cstring>

using namespace std;

struct student

{

char id[15];

int score;

int local_rank;

int local_number;

}stu[30010];

bool cmp(student a,student b)

{

if (a.score!=b.score) return a.score>b.score;

else return strcmp(a.id,b.id)<0;

}

int main()

{ int n,k,num=0;

scanf("%d",&n);//考场数

for (int i = 1; i <= n; i++)

{

scanf("%d",&k);

for (int j = 0; j < k; j++)

{

scanf("%s %d",stu[num].id,&stu[num].score);

stu[num].local_number=i;

num++;

}

sort(stu+num-k,stu+num,cmp);

stu[num-k].local_rank=1;

for (int x= num-k+1; x < num; x++)//让该考场的第二位到最后一位分数相同者拥有相同的考场排名,

{

if (stu[x].score==stu[x-1].score)

{

stu[x].local_rank=stu[x-1].local_rank;

}

else

{

stu[x].local_rank=x+1-(num-k);

}

}

}

printf("%d\n",num);

sort(stu,stu+num,cmp);

int r=1;

for (int i = 0; i < num; i++)//让该考场的第二位到最后一位分数相同者拥有相同的考场排名,

{

if (i>0&&stu[i].score!=stu[i-1].score)

{

r=i+1;

}

printf("%s ", stu[i].id);

printf("%d %d %d\n",r,stu[i].local_number,stu[i].local_rank);

}

return 0;

}

解决问题时参考的网站https://blog.csdn.net/pihe7623/article/details/79679264

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 9,208评论 0 2
  • C语言的学习要从基础开始,这里是100个经典的算法-1C语言的学习要从基础开始,这里是100个经典的 算法 题目:...
    Poison_19ce阅读 4,985评论 0 0
  • 8月22日-----字符串相关 2-3 个性化消息: 将用户的姓名存到一个变量中,并向该用户显示一条消息。显示的消...
    future_d180阅读 4,554评论 0 1
  • 结构体概述1.1 概念:有时需要将不同类型的数据组合成一个有机的整体,以便于引用。因此C语言采用结构体形式将不同类...
    Eric_Hunter阅读 4,935评论 0 0
  • 首先简单自我介绍一下 我是一名大一的软件工程专业的学生 大一学习了python和c语言的基础(目前学校课程还没有讲...
    似曾安生阅读 4,714评论 7 3

友情链接更多精彩内容