班里一个人都不会,谁能救救孩子
1、编写一个函数print,打印一个学生的成绩数组,该数组中有5个学生的数据记录,每个记录包括num,name,score[3],用主函数输入这些记录,用print函数输出这些记录。2、在上题的基础上,编写一个函数input,用来输入5个学生的数据记录。
3、计算全班学生的总成绩、平均成绩和以及 140 分以下的人数。学生包含信息有:姓名、学号、年龄、所在小组、成绩。成绩和具体信息自行设置
#include<stdio.h> struct student { unsigned num; // 题目没交代num是什么类型,那我就假设它是一串正整数 char name[20]; // 题目没交代名字最长是多少,那我就瞎写一个 float score[3]; }; void input( struct student s[], size_t n ); void print( const struct student s[], size_t n ); int main( void ) { struct student s[5]; const size_t n = sizeof(s)/sizeof(*s); printf( "请输入%zu位学生的学号,姓名,成绩:\n", n ); input( s, n ); printf( "这%zu位学生的学号,姓名,成绩分别是:\n", n ); print( s, n ); } void input( struct student s[], size_t n ) { for( size_t i=0; i!=n; ++i ) { scanf( "%u%19s", &s[i].num, s[i].name ); for( size_t j=0; j!=sizeof(s[i].score)/sizeof(s[i].score[0]); ++j ) scanf( "%f", &s[i].score[j] ); } } void print( const struct student s[], size_t n ) { for( size_t i=0; i!=n; ++i ) { printf( "%u %s", s[i].num, s[i].name ); for( size_t j=0; j!=sizeof(s[i].score)/sizeof(s[i].score[0]); ++j ) printf( " %g", s[i].score[j] ); putchar( '\n' ); } }
/*1、编写一个函数print,打印一个学生的成绩数组, 该数组中有5个学生的数据记录,每个记录包括num,name,score[3], 用主函数输入这些记录,用print函数输出这些记录。 2、在上题的基础上,编写一个函数input,用来输入5个学生的数据记录。 3、计算全班学生的总成绩、平均成绩和以及 140 分以下的人数。 学生包含信息有:姓名、学号、年龄、所在小组、成绩。成绩和具体信息自行设置*/ #include<stdio.h> struct student //定义结构体 { char name[5];//姓名 int age;//年龄 int group;//小组 int num;//学号 float grade1,grade2,grade3;//成绩 double average;//平均分 double sum;//总分 }; int main() { struct student stu[5]; int i,j,cnt=0,grade1=0,grade2=0,grade3=0,age=0,group=0,num=0; double average=0,sum=0; for(i=0;i<5;i++) { //请输入所有学生的信息,如zhang 1 1 18 60 60 60,输完一个信息后空格直接输入下一个直至输完回车 scanf("%s %d %d %d %f %f %f",stu[i].name,&stu[i].num,&stu[i].group,&stu[i].age,&stu[i].grade1,&stu[i].grade2,&stu[i].grade3); for(j=0;j<5;j++) { stu[j].sum=stu[i].grade1+stu[i].grade2+stu[i].grade3;//总分 stu[j].average=stu[j].sum/3.0;//平均分 if(stu[j].sum<140) cnt++; //低于140分的人数 //输出 姓名,学号,小组,年龄,成绩1,成绩2,成绩3,总分,平均分 printf("%-6s %2d %2d %2d %6.2f %6.2f %6.2f %6.2f %6.2f \n",stu[i].name,stu[i].num,stu[i].group,stu[i].age,stu[i].grade1,stu[i].grade2,stu[i].grade3,stu[j].sum,stu[j].average);break; } } printf("低于140分的人数是%d",cnt); printf("\n"); return 0; }