• 用结构体实现一个简单的学生信息系统


    #include <stdio.h>

    #define N 30

    struct STUDENT

    {

           char sname[30];//名字

           char sclass[10];//班级

           char ID[10];//学号

           char sdor[10];//宿舍

           float sscore[4];//4科分数

    }stu[N];

    void input(struct STUDENT stu[],int n)//输入各种信息

    {

           int i;

           for(i=0;i<n;i++)

           {

                  scanf("%s %s %s %s",stu[i].sname,stu[i].sclass,stu[i].ID,stu[i].sdor);

                  for(int j=0;j<4;j++)

                  {

                         if(j!=3||i==n-1)

                         scanf("%f",&stu[i].sscore[j]);

                         else

                         {

                                scanf("%f",&stu[i].sscore[j]);

                                getchar();

                         }

                  }

           }

    }

    void output(struct STUDENT stu[],int n)//输出各种信息

    {

           int i;

           for(i=0;i<n;i++)

           {

                  printf("%s %s %s %s ",stu[i].sname,stu[i].sclass,stu[i].ID,stu[i].sdor);

                  for(int j=0;j<4;j++)

                  {

                         if(j!=3)

                         printf("%.2f ",stu[i].sscore[j]);

                         else

                         {

                                printf("%.2f\n",stu[i].sscore[j]);

                         }

                  }

           }

    }

    int max(struct STUDENT stu[],int n)//比较各学生的计算机成绩

    {

           int i,t=0;

           for(i=0;i<n;i++)

           {

                  if(stu[t].sscore[3]<stu[i].sscore[3])

                  {

                         t=i;

                  }

           }

           return t;

    }

    change(float a[],int n)//对总分进行排序

    {

           int i,j;

           float t;

           for(i=0;i<n;i++)

           {

                  for(j=0;j<n-i-1;j++)

                  {

                         if(a[j]<a[j+1])

                         {

                                t=a[j];

                                a[j]=a[j+1];

                                a[j+1]=t;

                         }

                  }

           }

    }

    int main(void)

    {

           int n,i,j;

           float a[N]={0};

           input(stu,N);

           output(stu,N);

           n=max(stu,N);

           printf("computer max information:\nname:%s\nclass:%s\nID:%s\ndormatory:%s\nscore:",stu[n].sname,stu[n].sclass,stu[n].ID,stu[n].sdor);

           for(j=0;j<4;j++)

           {

                  if(j!=3)

                         printf("%.1f ",stu[n].sscore[j]);

                  else

                         printf("%.1f\n",stu[n].sscore[j]);

           }

           for(i=0;i<N;i++)//求各学生总分到数组

           {

                  for(j=0;j<4;j++)

                  {

                         a[i]+=stu[i].sscore[j];

                  }

           }

           change(a,N);

           printf("sum:");

           for(i=0;i<N;i++)

           {

                  if(i!=(N-1))

                  {

                         printf("%.1f ",a[i]);

                  }

                  else

                  {

                         printf("%.1f\n",a[i]);

                  }

           }

    }

  • 相关阅读:
    Nginx反向代理和jetty服务器配置
    如何使用canvas绘图
    毕业后,你折腾了多久做了多少努力才找到正确的方向或者道路?
    如何提高用户逃离成本
    首次创业者必须知道哪些基本常识?
    拦截器、过滤器、监听器各有什么作用
    第一人称入行分享贴:大学混了四年,如何顺利入行互联网
    线下学习
    如何实现数组深拷贝和浅拷贝?
    从零学前端第二讲:CSS行内块级元素布局与定位
  • 原文地址:https://www.cnblogs.com/zhaohongjie/p/12118384.html
Copyright © 2020-2023  润新知