下面是我修改后的代码,编码风格有些和你不一样:

程序代码:
/**
* file_name: test.c
* description:
*
* version: 1.0
* created: 17:14 2009-8-2
* revision: none
* compiler: VC6.0
*
* author: prankmoon@* company:
*/
#include <stdio.h>
#include <stdlib.h>
struct score
{
char name[20]; // 更长了,因为我一不小心胡乱按键盘就溢出了
float math;
float eng;
};
int main(void)
{
int i;
float avg[5] = {0}; // 改成了float型,double在这里并不能提高精度
struct score s[5];
for(i=0; i<5; i++)
{
printf("name: ");
/* 增加下面这一行,但有其缺陷,具体的你可以参考这篇文章:
http://blog.*/
fflush(stdin);
gets(s[i].name); // gets函数已经不推荐使用了,详见《C专家编程》P42
printf("maths english: ");
/* 输入的参数之间还是用空格或者逗号分开为佳 */
scanf("%f %f",&(s[i].math), &(s[i].eng));
}
for(i=0; i<5; i++)
{
avg[i] = (s[i].math + s[i].eng) / 2;
printf("%3.1f\t\n", avg[i]);
}
return 0;
}
输入:
name: hulala
maths english: 12 123
name: asdf
maths english: 123 23
name: afd
maths english: 231 2423
name: sadfads
maths english: 1231 3423
name: fasdfaf
maths english: 123 543
输出:
67.5
73.0
1327.0
2327.0
333.0
希望能够对你有所帮助。
[[it] 本帖最后由 prankmoon 于 2009-8-2 17:48 编辑 [/it]]