用結構體實現一個簡單的學生信息系統


#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]);

              }

       }

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM