Nefu 锐格c实验5

记录一下现在写的代码,以后深造或者工作了还能翻出来拷打一下之前的自己。

5885 结构体的读入和输出

#include<stdio.h>
#include<string.h>
struct student
{
    long int sno;
    char name[20];
    float score;
};
int main()
{
    int n;
    scanf("%d",&n);
    struct student stu[n];
    int i;
    for(i=0;i<n;i++)
    {
        scanf("%ld",&stu[i].sno);
        scanf("%s",stu[i].name);
        scanf("%f",&stu[i].score);
    }
    for(i=0;i<n;i++)
    {
        printf("%ld  ",stu[i].sno);
        printf("%s  ",stu[i].name);
        printf("%.2f  \n",stu[i].score);

    }
    return 0;
}

5886 结构体输入及成员大小排序

#include<stdio.h>
#include<string.h>
struct student
{
    long int sno;
    char name[20];
    float score;
};
int main()
{
    int n;
    int a1,a2,a3;
    a1=a2=a3=0;
    int i,j;
    scanf("%d",&n);
    struct student stu[n];
    for(i=0;i<n;i++)
    {
        scanf("%ld",&stu[i].sno);
        scanf("%s",stu[i].name);
        scanf("%f",&stu[i].score);
    }
    for(i=0;i<n;i++)
    {
        if(stu[i].score<60)
        {
            a3++;
        }
        else if(stu[i].score>=60&&stu[i].score<80)
        {
            a2++;
        }
        else
        {
            a1++;
        }
    }
    printf("%d ",a1);
    printf("%d ",a2);
    printf("%d ",a3);
    return 0;
}

5887 结构体成员是数组的求和、求均值操作

#include<stdio.h>
#include<string.h>
struct stu
{
    int xuehao;
    char name[20];
    double score[4];
    double sum;
    double ave;
};
int main()
{
    int n;
    int i,j;
    while(scanf("%d",&n)!=EOF)
    {
        struct stu s[n];
        for(i=0;i<n;i++)
        {
            scanf("%d",&s[i].xuehao);
            scanf("%s",s[i].name);
            for(j=0;j<4;j++)
            {
                scanf("%lf",&s[i].score[j]);
            }
            s[i].sum=0;
            s[i].ave=0;
        }
        for(i=0;i<n;i++)
        {
            for(j=0;j<4;j++)
            {
                s[i].sum=s[i].score[j]+s[i].sum;
            }
            s[i].ave=(s[i].sum/4);
        }
        for(i=0;i<n;i++)
        {
            printf("%d ",s[i].xuehao);
            printf("%s ",s[i].name);
            printf("%.2f ",s[i].sum);
            printf("%.2f \n",s[i].ave);
        }
    }
    return 0;
}

5888 和上一题类似,去掉ave及输出改一下就行

#include<stdio.h>
#include<string.h>
struct stu
{
    int xuehao;
    char name[20];
    double score[4];
    double sum;
};
int main()
{
    int n;
    int i,j;
    while(scanf("%d",&n)!=EOF)
    {
        struct stu s[n];
        for(i=0;i<n;i++)
        {
            scanf("%d",&s[i].xuehao);
            scanf("%s",s[i].name);
            for(j=0;j<4;j++)
            {
                scanf("%lf",&s[i].score[j]);
            }
            s[i].sum=0;
        }
        for(i=0;i<n;i++)
        {
            for(j=0;j<4;j++)
            {
                s[i].sum=s[i].score[j]+s[i].sum;
            }
        }
        struct stu tmp;
        for(i=0;i<n-1;i++)
        {
            for(j=0;j<n-1-i;j++)
            {
                if(s[j].sum>s[j+1].sum)
                {
                    tmp=s[j];
                    s[j]=s[j+1];
                    s[j+1]=tmp;
                }
            }
        }
        printf("%d ",s[i].xuehao);
        printf("%s ",s[i].name);
    }
    return 0;
}

5889 同5887(大表哥竟是我自己(bushi )

#include<stdio.h>
#include<string.h>
struct stu
{
    char name[20];
    char xb[2];
    double sg[3];
    double score;
};
int main()
{
    int n;
    int i,j;
    while(scanf("%d",&n)!=EOF)
    {
        struct stu s[n];
        for(i=0;i<n;i++)
        {
            scanf("%s",s[i].name);
            scanf("%s",s[i].xb);
            for(j=0;j<3;j++)
            {
                scanf("%lf",&s[i].sg[j]);
            }
        }
        for(i=0;i<n;i++)
        {
            for(j=0;j<3;j++)
            {
                s[i].score=s[i].sg[j]+s[i].score;
            }
            s[i].score=s[i].score/3;
        }
        struct stu tmp;
        for(i=0;i<n-1;i++)
        {
            for(j=0;j<n-1-i;j++)
            {
                if(s[j].score<s[j+1].score)
                {
                    tmp=s[j];
                    s[j]=s[j+1];
                    s[j+1]=tmp;
                }
            }
        }
        for(i=0;i<n;i++)
        {
            if(strcmp(s[i].xb,"f")==0)
            {
                printf("I choose %s,and her score is %.2lf.",s[i].name,s[i].score);
                break;
            }
        }
    return 0;
}
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值