c 实现学生成绩管理

来源:互联网 发布:cad迷你看图软件 mac 编辑:程序博客网 时间:2024/04/25 02:05

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

struct Score
{

 int english;
 int math;
 int chinese;
};

void main()

{
 
  int n=0;
  printf("input a number\n");
  scanf("%d",&n);
  Score *sco=(Score *)malloc(n*sizeof(Score));
  int i;
  srand(time(0));
  for( i=0;i<n;i++)
  {
    
  sco[i].chinese=rand()%101;
  sco[i].english=rand()%101;
  sco[i].math=rand()%101;


  }
  printf("All the score bellow\n");
  printf("ID\t语文\t英语\t数学\n");
  for( i=0;i<n;i++)
   printf("%d\t%d\t%d\t%d\n",i+1,sco[i].chinese,sco[i].english,sco[i].math);
 
 

 
  int max=0;
  int m=0;
   for(i=0;i<n;i++)
   {
   
    int temp=sco[i].chinese+sco[i].english+sco[i].math;
    if(temp>max)
    {
     max=temp;
     m=i;
    }
   
   }
  
   printf("the higest score is %d\n the student number is %d\n",max,m+1);
   printf("input a num(1,2,3)to select\n");
   int sec;
   scanf("%d",&sec);
 
 
 
  switch(sec)
   {

   case 1:
    {
     float chin=0;
     for(i=0;i<n;i++)
              chin=chin+sco[i].chinese;
     printf("the average of chinese score %f\n",chin/n);
    }
    break;
   case 2:
    {
     float eng=0;
     for(i=0;i<n;i++)
      eng=eng+sco[i].english;
     printf("the average of english score %f\n",eng/n);
    }
    break;
   case 3:
    {
     float mat=0;
     for(i=0;i<n;i++)
      mat=mat+sco[i].math;
     printf("the average of math score %f\n",mat/n);
    }
    break;
   default:
    printf("error input\n");
    break;

   }
  
 return ;
}

原创粉丝点击