2020年3月3日 结构体
题目虽然简单,但还是需要细心。有时候一个细小的错误就能让整个程序崩溃,所以以后在做题尤其是简单题时更应该细心,再细心。。
3.3 课程内实验>实验5:结构体(5/5)
5885
结构体的定义题目,接收再输出就行了。
#include <stdio.h>
#include <stdlib.h>
int main()
{
struct node
{
int num;
char name[21];
double score;
}stu;
int n;
scanf("%d",&n);
while(n--){
scanf("%d%s%lf",&stu.num,stu.name,&stu.score);
printf("%d %s %.2lf\n",stu.num,stu.name,stu.score);
}
return 0;
}
5886
同样是水题。
#include <stdio.h>
#include <stdlib.h>
struct node
{
int num,score;
char name[21];
};
int main()
{
struct node stu;
int n,i;
while(~scanf("%d",&n)){
int a=0,b=0,c=0;
for(i=1;i<=n;i++){
scanf("%d %s %d",&stu.num,stu.name,&stu.score);
if(stu.score>=80) a++;
else if(stu.score>=60) b++;
else c++;
}
printf("%d %d %d\n",a,b,c);
}
return 0;
}
5887
一开始老是有个迷之空格,后来才发现没加while(n–)。。。
#include <stdio.h>
#include <stdlib.h>
struct node
{
int num;
char name[21];
double score[4];
};
int main()
{
struct node stu;
int n,i;
while(~scanf("%d",&n)){
while(n--){
scanf("%d%s",&stu.num,stu.name);
double sum=0;
for(i=0;i<4;i++){
scanf("%lf",&stu.score[i]);
sum+=stu.score[i];
}
printf("%d %s %.2lf %.2lf\n",stu.num,stu.name,sum,sum/4.0);
}
}
return 0;
}
5888
简单题。相当于求最大值,然后接收那个数和对应的名字字符串即可。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct node
{
int num,k;
char name[20];
double score[4],sum;
};
int main()
{
struct node stu;
int n,i;
while(~scanf("%d",&n)){
double max=0;
int maxn;
char maxname[20];
for(i=1;i<=n;i++){
scanf("%d%s%lf%lf%lf%lf",&stu.num,stu.name,&stu.score[1],&stu.score[2],&stu.score[3],&stu.score[4]);
stu.k=i;
stu.sum=stu.score[1]+stu.score[2]+stu.score[3]+stu.score[4];
if(stu.sum>max){
max=stu.sum;
maxn=stu.num;
strcpy(maxname,stu.name);
}
}
printf("%d %s\n",maxn,maxname);
}
return 0;
}
5889
与上一题思路和解法基本相同。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct node
{
char name[20];
char sex;
double score[4];
};
int main()
{
struct node stu;
int n,i;
while(~scanf("%d",&n)){
double max=0;
char maxname[20];
for(i=1;i<=n;i++){
scanf("%s %c %lf %lf %lf",stu.name,&stu.sex,&stu.score[1],&stu.score[2],&stu.score[3]);
if(stu.sex=='m') continue;
else{
double sum=0;
sum=stu.score[1]+stu.score[2]+stu.score[3];
if(sum>max){
max=sum;
strcpy(maxname,stu.name);
}
}
}
printf("I choose %s,and her score is %.2lf.\n",maxname,max/3);
}
return 0;
}