编写程序,输出某班4名学生中某个学生的各门功课成绩和平均成绩。假设每个学生包含5门课成绩。按要求完成以下内容:
(1)编写函数input( )输入所有学生的信息;
(2)编写函数find(),根据指定的学生姓名输出该学生的各项信息;
说明:
(1)输入格式说明:除格式控制符外,不允许有普通字符
(2)输出格式说明: 学号和姓名的输出格式为--"%d %s\n"
每门功课成绩的输出格式为--"%-3d"
平均成绩的输出格式为--"%7.2f"
(3)部分程序段如下:
#include <stdio.h>
#include <string.h>
struct stu{
int num;
char name[20];
int score[5];
float avg;
};
int main()
{
void input(struct stu s[],int n);
void find(struct stu s[],int n,char *na);
struct stu s[4];
char xingming[20];
printf("请输入学生信息");
/*************请在下面空白处加上合适的函数调用语句******/
/**********************************************************/
printf("请输入要查找的学生的姓名");
gets(xingming) ;
/*************请在下面空白处上合适的函数调用语句******/
/**********************************************************/
return 0;
}
/****请在下面定义所需函数***/
#include <stdio.h>
#include <string.h>
struct stu{
int num;
char name[20];
int score[5];
float avg;
};
void input(struct stu s[],int n)
{int i;
for(i=0;i<n;i++)
{
scanf("%d%s%d%d%d%d%d",&s[i].num,&s[i].name,&s[i].score[0],&s[i].score[1],&s[i].score[2],&s[i].score[3],&s[i].score[4]);
s[i].avg=(s[i].score[0]+s[i].score[1]+s[i].score[2]+s[i].score[3]+s[i].score[4])/5.0;
}
}
void find(struct stu s[],int n,char *na)
{
int i;
for( i=0;i<n;i++)
{
if(strcmp(s[i].name,na)==0)
{
printf("%d %s\n%-3d%-3d%-3d%-3d%-3d%7.2f",s[i].num,s[i].name,s[i].score[0],s[i].score[1],s[i].score[2],s[i].score[3],s[i].score[4],s[i].avg);
break;
}
}
if(i>=n)
printf("no student");
}
int main()
{
struct stu s[4];
char n[20];
printf("请输入学生信息");
input(s,4);
getchar();
printf("请输入要查找的学生的姓名");
gets(n) ;
find(s,4,n);
return 0;
}