题目:
假设3个学生信息如下学号(长整型)、姓名(字符串型)、年龄(整型)、C 语言成绩成 绩(实型)、微积分成绩(实型)、英语成绩(实型)、总分(实型)、平均分(实型)。
试编写函数lab13_1,接收两个参数,依次是grade结构数组和数组长度。
该函数输入3个学生的上述信息,计算每个学生的总分和平均分,将每个学 生学号、姓名、总分、平均分存入grade结构数组。
数组长度小于1则输出“error”,否则不要输出。
grade结构保存每个学生的学号,姓名,总分和平均分。
学生结构自己定义。
struct grade{
long id;
char name[20];
float sum;
float average;
};
输入样例:
1 zhangs 17 78 89 90
2 lis 18 90 80 100
3 wangw 18 99 81 82
注意点:
1.为什么要求写的函数包含的参数有数组长度呢?因为他是假设的有三个同学,实际上n可以是int 可表达的任意整数。
2.这个题很老所以所有要用的变量都要提前声明,否则就会报一堆错误。
下面的代码是在愤怒中写的:
#include<stdio.h>
#include<string.h>
struct grade{
long id;
char name[20];
float sum;
float average;
};
struct fuckmatu{
long fuckid;
char fuckname[20];
int fuckage;
float fuckg1;
float fuckg2;
float fuckg3;
};
struct grade stu[100];
struct fuckmatu fuck[100];
int i;
void lab13_1(struct grade stu[] ,int n)
{
if(n<1)
{
printf("error");
return ;
}
for( i=0;i<n;i++)
{
scanf("%ld %s %d %f %f %f",&fuck[i].fuckid,fuck[i].fuckname,&fuck[i].fuckage,&fuck[i].fuckg1,&fuck[i].fuckg2,&fuck[i].fuckg3);
stu[i].id=fuck[i].fuckid;
strcpy(stu[i].name,fuck[i].fuckname);
stu[i].sum=fuck[i].fuckg1+fuck[i].fuckg2+fuck[i].fuckg3;
stu[i].average=stu[i].sum/3;
}
return;
}