满意答案
第一题:
#include
//定义一个结构,记录一个学生的信息
typedef struct{
char num[10];
char name[10];
int score[3];
} STUDENT;
int main()
{
FILE* file; //文件指针,用于打开文件和将数据写入文件的一个接口
STUDENT student[5]; //5个学生
int i,j;
double ave[3]; //计算各门课平均分用的
printf("请依次输入5个学生的信息:\n");
for (i=0; i<5; i++) //输入信息
{
scanf("%s%s",student[i].num,student[i].name);
for (j=0; j<3; j++) scanf("%d",&student[i].score[j]);
}
for (i=0; i<3; i++) ave[i]=0;
for (j=0; j<5; j++)
for (i=0; i<3; i++) ave[i]=ave[i]+student[j].score[i]; //先计算总分
for (i=0; i<3; i++) ave[i]=ave[i]/5.0; //算平均分
file=fopen("ZK1","w"); //打开一个文件,文件名叫ZK1
//下面使用fprintf将信息写入磁盘文件中
for (i=0; i<5; i++)
{
fprintf(file,"%s %s ",student[i].num,student[i].name);
for (j=0; j<3; j++) fprintf(file,"%d ",student[i].score[j]);
fprintf(file,"\n");
}
//写入三门课的平均成绩
fprintf("三门课的平均成绩分别是:");
for (i=0; i<3; i++) fprintf(file,"%lf ",ave[i]);
fclose(file); //关闭,保存文件
return 0;
}
至于第二题的程序
第22行,你写的是 scanf("%f',&s[i].avgcj);
你把%f后面的双引号打成单引号了
另外还有倒数第二行,你写的是 printf("sname=%s sum=%f",s[j].sname sum);
在s[j].sname和sum中间,你忘记打个逗号了
另外,你的struct定义写得不对,应该这样写:
typedef struct
{
int sno;
char sname[20];
float ywcj;
float sxcj;
float yucj;
float avgcj;
}student;
student s[5];
00分享举报