第一小题的要求及模板:
实战代码:
#include <stdio.h>
#define N 100 /*N表示最多允许的学生人数*/
struct Student
{
int num; //学号
int c; //C语言成绩
int math; //数学成绩
float aver; //两科均分
};
int main( )
{
int n , i , pass = 0;
//定义结构体数组存放多名同学的成绩
struct Student stu[N];
printf("请输入学生人数: ");
scanf("%d", &n);
printf("请输入学号、C和数学课的成绩: \n");
//输入数据
for(i = 0 ; i < n ; i++){
scanf("%d %d %d",&stu[i].num,&stu[i].c,&stu[i].math);
stu[i].aver = (stu[i].c + stu[i].math)/2.0;
if(stu[i].c>60&&stu[i].math>60) pass++;
}
//输出成绩单
printf("学号\tC\t数学\t均分\n");
for(i = 0 ; i < n ; i++){
printf("%d\t%d\t%d\t%.2f\n",stu[i].num,stu[i].c,stu[i].math,stu[i].aver);
}
printf("两门课都及格了的人数有:%d",pass);
return 0;
}
运行演示:
第二小题题目及模板:
实战代码:
#include <stdio.h>
#define N 100 /*N表示最多允许的学生人数*/
struct Student
{
int num; //学号
int c; //C语言成绩
int math; //数学成绩
float aver; //两科均分
};
int main( )
{
int n , i , pass = 0;
double averC = 0,averMath = 0;
double sumC = 0,sumMath = 0;
//定义结构体数组存放多名同学的成绩
struct Student stu[N];
printf("请输入学生人数: ");
scanf("%d", &n);
printf("请输入学号、C和数学课的成绩: \n");
//输入数据
for(i = 0 ; i < n ; i++){
scanf("%d %d %d",&stu[i].num,&stu[i].c,&stu[i].math);
stu[i].aver = (stu[i].c * 3 + stu[i].math * 4)/7.0;
sumC += stu[i].c;
sumMath += stu[i].math;
}
averC = sumC / n;
averMath = sumMath / n;
//输出成绩单
printf("学号\tC\t数学\t学分绩\n");
for(i = 0 ; i < n ; i++){
printf("%d\t%d\t%d\t%.2f\n",stu[i].num,stu[i].c,stu[i].math,stu[i].aver);
}
printf("科均分\t%.2lf\t%.2lf\n",averC,averMath);
printf("得奖学金的同学的学号是:\n");
for(i = 0 ; i < n ; i++){
if(stu[i].c>60&&stu[i].math>60&&stu[i].aver>80){
printf("%d\t",stu[i].num);
}
}
return 0;
}
运行演示:
总结:这两道题是为了让我们熟悉结构体的定义以及引用,并没有难懂的知识点,但我们不要放弃联系,知识都是从慢慢积累中收获的,加油!!