C语言基础题.有5个学生,每个学生有3门课的成绩,从键盘输入学生数据有5个学生,每个学生有3门课的成绩,从键盘输入学生数据(包括学生号,姓名,三门课成绩),计算出平均成绩,将原有数据和
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/03 01:22:12
C语言基础题.有5个学生,每个学生有3门课的成绩,从键盘输入学生数据有5个学生,每个学生有3门课的成绩,从键盘输入学生数据(包括学生号,姓名,三门课成绩),计算出平均成绩,将原有数据和
C语言基础题.有5个学生,每个学生有3门课的成绩,从键盘输入学生数据
有5个学生,每个学生有3门课的成绩,从键盘输入学生数据(包括学生号,姓名,三门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stu”中.
输入有问题.打开文件的时候也有问题.
下面是我写的代码.
#include <iostream>
#include <stdlib.h>
#include <string.h>
struct student
{
char number[20];
char name[20];
int score[3];
} str[5];
void main()
{
float aver(int *);
struct student *p;
p=str;
int i,j;
for(i=0;i<5;i++) //read
{
printf("number:");
gets(p->number);
printf("name:");
gets(p->name);
for (j=0;j<3;j++)
switch(j)
{
case 0:printf("Mathematics:"); scanf("%d",&p->score[0]);break;
case 1:printf("C Program:"); scanf("%d",&p->score[1]);break;
case 2:printf("English:"); scanf("%d",&p->score[2]);break;
}
p++;
printf("\n");
}
FILE *fp;
char filename[5]={"stud"};
if((fp=fopen(filename,"w"))==NULL)
{printf("Can't open the %s\n",filename);
exit(0);
}
for(i=0;i<5;i++)// puts
{
fprintf(fp,"number:");
fputs(p->number,fp);
fprintf(fp,"\nname:");
fputs(p->name,fp);
for (j=0;j<3;j++)
switch(j)
{
case 0:fprintf(fp,"\nMathematics:%d",p->score[0]);break;
case 1:fprintf(fp,"\nC Program:%d",p->score[1]);break;
case 2:fprintf(fp,"\nEnglish:%d",p->score[2]);break;
}
fprintf(fp,"\nAverage:%d\n\n",aver(p->score));
p++;
}
fclose(fp);
}
float aver(int *a)
{
int i=0;
float sum;
for (;i<3;i++)
{
sum+=(int)(*a);
a++;
}
return sum/3;
}
C语言基础题.有5个学生,每个学生有3门课的成绩,从键盘输入学生数据有5个学生,每个学生有3门课的成绩,从键盘输入学生数据(包括学生号,姓名,三门课成绩),计算出平均成绩,将原有数据和
把你的程序改了下:
#include
#include
#include
struct student
{
char number[20];
char name[20];
int score[3];
} str[5];
void main()
{
float aver(int *);
struct student *p;
p=str;
int i,j;
for(i=0;inumber);
printf("name:");
gets(p->name);
for (j=0;jscore[0]);break;
case 1:printf("C Program:"); scanf("%d",&p->score[1]);break;
case 2:printf("English:"); scanf("%d",&p->score[2]);break;
}
getchar(); //接收scanf()结束时的回车
p++;
printf("\n");
}
FILE *fp;
char filename[5]={"stud"};
if((fp=fopen(filename,"w"))==NULL)
{printf("Can't open the %s\n",filename);
exit(0);
}
p=str; //必须重新初始化指针p
for(i=0;inumber,fp);
fprintf(fp,"\nname:");
fputs(p->name,fp);
for (j=0;jscore[0]);break;
case 1:fprintf(fp,"\nC Program:%d",p->score[1]);break;
case 2:fprintf(fp,"\nEnglish:%d",p->score[2]);break;
}
fprintf(fp,"\nAverage:%f\n\n",aver(p->score)); //%d改为%f
p++;
}
fclose(fp);
}
float aver(int *a)
{
int i=0;
float sum=0; //初始化为0
for (;i