2020年3月3日 锐格习题 结构体

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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值