📄 student-record.c
字号:
#include <stdio.h>
#include <string.h>
struct student
{int num;
char name[20];
int score[3];
}stu[5]={{10101,"li",80,85,88},
{10102,"chen",90,93,97},
{10103,"he",65,73,100},
{10104,"ke",95,96,97},
{10105,"ma",57,80,63}};
main()
{
find(stu);
}
float average(int x[],int n)
{int i;
float z,sum=0.0;
for(i=0;i<n;i++)
sum+=x[i];
z=sum/n;
return(z);
}
find(struct student*p)
{ int i,n,m,mark,j,h=0,l=0,g=0;
float k;
char name[20];
printf("please enter an int number which must be from 1 to3:\n");
scanf("%d",&m);
if(m==1)
{
printf("please input the number of the student:\n");
scanf("%d",&n);
label_1:for(i=0;i<5;i++)
{if((*p).num==n)
{k=average((*p).score,3);
printf("name:%s\n s0:%d\n s1:%d\n s2:%d\n average score:%f\n",p->name,p->score[0],p->score[1], p->score[2],k);
h=1;break;
}
else p++;
}
if(h==0){ p=stu;
printf("please input again for the first entering of number is wrong:\n");
scanf("%d",&n);
goto label_1; }
}
else if(m==2)
{
printf("please input the name of the student :\n");
scanf("%s",name);
label_2:for(i=0;i<5;i++)
{if(strcmp(p->name,name)==0)
{k=average((*p).score,3);
printf("e:%s\n y:%d\n s:%d\n yu:%d\n average score:%f\n",p->name,p->score[0],p->score[1], p->score[2],k);
g=1;break;}
else p++;}
if(g==0)
{ p=stu;
printf("please input again for the first entering of name is wrong:\n");
scanf("%s",name);
goto label_2;}
}
else{
printf("please enter the score of the student :\n");
scanf("%d",&mark);
label_3:for(i=0;i<5;i++)
{for(j=0;j<3;j++)
if(p->score[j]==mark)
{k=average((*p).score,3);
printf("name:%s\n score[0]:%d\n score[1]:%d\n score[2]:%d\n average score:%f\n",
p->name,p->score[0],p->score[1],p->score[2],k);l=1;break;}
else p=(struct student*)stu[i].score;
p++;}
if(l==0)
{ p=stu;
printf("please input again for the first entering of score couldn't be found:\n");
scanf("%d",mark);
goto label_3; }
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -