PTA B1004 成绩排名

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fuckingone/article/details/82591498

1.temp存临时数据,ans_max初始化初值101,ans_min初始化-1,方便更新。

2.字符数组name和id的大小必须是11而不能是10,否则第一个数据和最后一个数据会得到“答案错误”。因为字符数组的最后一位需要留给'\n',所以数组大戏小必须比题目要求至少大1位。

3.字符数组赋值

scanf对字符串的输入有%s和%c两种格式。%c格式用来输入单个字符,它能够识别空格和换行符并将其保存到字符数组中;%s格式用来输入一个字符串,它通过空格和换行来识别一个字符串的结束。也就是说使用%s格式输入并保存到字符数组中的字符串是不含空格的。下面是一个实例:

#include <stdio.h>

int main(){

char str[10];

scanf("%s", str);

printf("%s", str);

return 0;

}

输入字符串“abc def ghi”,输出的结果为“abc”。可以看到,%s识别空格作为字符串的结尾,因此第一个空格后面的字符都不会被读入。

原博https://blog.csdn.net/a834352982/article/details/56841873

 4.结构体最后一个分号之前,您可以指定一个或多个结构变量

#include<cstdio>
#include<cstring>
using namespace std;
struct student{
  char name[15];
  char id[15];
  int score;
}temp,ans_max,ans_min;
int main(){
  int n;
  scanf("%d",&n);
  ans_max.score=-1;
  ans_min.score=101;
  while(n--){
    scanf("%s %s %d",temp.name,temp.id,&temp.score);
    if(temp.score>ans_max.score)ans_max=temp;
    if(temp.score<ans_min.score)ans_min=temp;
  }
  printf("%s %s\n",ans_max.name,ans_max.id);
  printf("%s %s\n",ans_min.name,ans_min.id);
  return 0;
}

猜你喜欢

转载自blog.csdn.net/fuckingone/article/details/82591498