一只尛皛熊 2020-12-04 00:54 采纳率: 0%
浏览 15

各位大神,来吧,展示!

来吧展示。

  • 写回答

1条回答 默认 最新

  • 一只尛皛熊 2020-12-10 21:32
    关注

    自己写出来好有成就感!

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<math.h>
    #include<time.h>

    struct student
    {
        int xuehao;
        char name[20];
        int k1,k2,k3;
        double k0;           //总成绩
    }a[1000],b[1000];

    void c_information(int n);                                         //1
    void sum(int n,double r1,double r2,double r3);                     //2
    void charu(int n,int N);                                           //3
    void delete_(int n,int DN);                                        //4
    void founum(int n,int fou_num);                                    //5
    void founame(int n,char fou_name[]);                               //6
    void show(int n);                                                  //7

    int main()
    {
        int a/*指令数字*/, n/*循环总数*/, m/*插入判断数*/ ;
        int N/*3*/, NN/*4*/, fou_num/*5*/;
        char fou_name[100];  /*6*/
        scanf ("%d ",&a);
        while(a != 0)
        {
            if (a==1)
            {
                scanf ("%d ",&n);
                c_information(n);
            }
            else if(a==2)
            {
                double r1,r2,r3;
                n=n;
                scanf("%lf %lf %lf",&r1,&r2,&r3);
                sum(n,r1,r2,r3);
            }
            else if(a==3)
            {
                n=n;
                scanf("%d",&N);
            }
            else if(a==4)
            {
                scanf("%d",&NN);
                if(NN<=n)
                {
                    delete_(n,NN);
                    n-1;
                }
            }
            else if(a==5)
            {
                scanf("%d",&fou_num);
                founum(n,fou_num);
                printf("\n");
            }
            else if(a==6)
            {
                scanf("%s",fou_name);
                founame(n,fou_name);
                printf("\n");
            }
            else if(a==7)
            {
                show(n);
                printf("\n");
            }
            scanf("%d ",&a);
        }
        return 0 ;
    }

    void c_information(int n)
    {
        int i;
        for(i=0;i<n;i++)
        {
            scanf("%d %s %d %d %d ",&a[i].xuehao, a[i].name, &a[i].k1, &a[i].k2, &a[i].k3 );
            a[i].k0=0.0;
        }
    }

    void sum(int n,double r1,double r2,double r3)
    {
        int i;
        for(i=0;i<n;i++)
        {
            a[i].k0 = a[i].k1*r1 + a[i].k2*r2 + a[i].k3*r3 ;
        }
    }

    void charu(int n,int N)
    {
        int i;
        if (n>=N)
        {
            for(i=n;i>=N;i--)
            {
                a[i].xuehao=a[i-1].xuehao;
                strcpy (a[i].name,a[i-1].name);
                a[i].k1=a[i-1].k1;
                a[i].k2=a[i-1].k2;
                a[i].k3=a[i-1].k3;
                a[i].k0=a[i-1].k0;
            }
            scanf("%d %s %d %d %d ",&a[N-1].xuehao, a[N-1].name, &a[N-1].k1, &a[N-1].k2, &a[N-1].k3 );
            a[N-1].k0=0.0;
        }
        else 
        {
            scanf("%d %s %d %d %d ",&a[n].xuehao, a[n].name, &a[n].k1, &a[n].k2, &a[n].k3 );
        }
    }

    void delete_(int n,int NN)
    {
        int i,l;
        a[NN-1].k0=-1;
        l=strlen(a[NN-1].name);   //计算长度
        for(i=0;i<l;i++)
        {
            a[NN-1].name[i]='\0';
        }
        a[NN-1].k1=0;
        a[NN-1].k2=0;
        a[NN-1].k3=0;
        a[NN-1].k0=0.0;
        for(int i=(NN-1);i<(n-1);i++)
        {
            a[i].xuehao=a[i+1].xuehao;
            strcpy(a[i].name,a[i+1].name);
            a[i].k1=a[i+1].k1;
            a[i].k2=a[i+1].k2;
            a[i].k3=a[i+1].k3;
            a[i].k0=a[i+1].k0;
        }
        a[n-1].xuehao=-1;
        l=strlen(a[n-1].name);
        for(int i=0;i<l;i++)
        {
            a[n-1].name[i]='\0';
        }
        a[n-1].k1=0;
        a[n-1].k2=0;
        a[n-1].k3=0;
        a[n-1].k0=0.0;
    }

    void founum(int n,int fou_num)
    {
        int flag_num=0;
        for(int i=0;i<n;i++)
        {
            if(a[i].xuehao==fou_num)
            {
                printf("学号:%d 姓名:%s 成绩1:%d 成绩2:%d 成绩3:%d 综合成绩:%.2lf\n",a[i].xuehao,a[i].name,a[i].k1,a[i].k2,a[i].k3,a[i].k0);
                flag_num=1;
                break;
            }
        }
        if(flag_num==0)
        {
            printf("Not Found.\n");
        }
    }

    void founame(int n,char *fou_name)
    {
        int flag_name=0;
        for(int i=0;i<n;i++)
        {
            if(strcmp(a[i].name,fou_name)==0)
            {
                printf("学号:%d 姓名:%s 成绩1:%d 成绩2:%d 成绩3:%d 综合成绩:%.2lf\n",a[i].xuehao,a[i].name,a[i].k1,a[i].k2,a[i].k3,a[i].k0);
                flag_name=1;
                break;
            }
        }
        if(flag_name==0)
        {
            printf("Not Found.\n");
        }
    }

    void show(int n)
    {
        for(int i=0;i<n;i++)
        {
            if(a[i].xuehao!=-1)
            {
                printf("学号:%d 姓名:%s 成绩1:%d 成绩2:%d 成绩3:%d 综合成绩:%.2lf\n",a[i].xuehao,a[i].name,a[i].k1,a[i].k2,a[i].k3,a[i].k0);
            }
        }
    }
     

    评论

报告相同问题?

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况