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.youkuaiyun.com/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;
}