第3个回答 2010-05-05
#include <stdio.h>
struct student
{
char name[10];
char no[20];//学号
float yinyu;
float shuxue;
float cyuyan;
float tiyu;
};
//输入学生信息
void inputstudent(student* st)
{
printf("请输入学生姓名:");
scanf("%s",st->name);
printf("学号:");
scanf("%s",st->no);
printf("英语:");
scanf("%f",&st->yinyu);
printf("数学:");
scanf("%f",&st->shuxue);
printf("C语言:");
scanf("%f",&st->cyuyan);
printf("体育:");
scanf("%f",&st->tiyu);
}
//求平均成绩
float getavge(student* st)
{
return (st->yinyu+st->shuxue+st->cyuyan+st->tiyu)/4.0f;
}
//输出学生信息到文件或屏幕(f==NULL时输出到屏幕)
void outputstudent(student* st,FILE* f)
{
if(f==NULL)
f=stdout;
fprintf(f,"%s %s %.2f %.2f %.2f %.2f %.2f\n",st->name,st->no,st->yinyu,st->shuxue,st->cyuyan,st->tiyu,getavge(st));
}
//输出信息头
void printhead(FILE* f)
{
if(f==NULL)
f=stdout;
fprintf(f,"姓名 学号 英语 数学 C语言 体育 平均\n");
}
void main()
{
int i;
const static int n=10;//10个学生
student st[n];//n个学生
float avge[n];//n个学生的平均成绩
//输入学生信息
for(i=0;i<n;i++)
{
inputstudent(&st[i]);
}
//求平均成绩
for(i=0;i<n;i++)
{
avge[i]=getavge(&st[i]);
}
FILE* fi=fopen("student.txt","w+");
printhead(fi);
printhead(NULL);
for(i=0;i<n;i++)
{
//输出到文件
outputstudent(&st[i],fi);
//输出到屏幕
outputstudent(&st[i],NULL);
}
fclose(fi);
}
其中少了歌“;”你找找