C语言基础题.有5个学生,每个学生有3门课的成绩,从键盘输入学生数据有5个学生,每个学生有3门课的成绩,从键盘输入学生数据(包括学生号,姓名,三门课成绩),计算出平均成绩,将原有数据和
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/09 01:00:51
![C语言基础题.有5个学生,每个学生有3门课的成绩,从键盘输入学生数据有5个学生,每个学生有3门课的成绩,从键盘输入学生数据(包括学生号,姓名,三门课成绩),计算出平均成绩,将原有数据和](/uploads/image/z/12628363-67-3.jpg?t=C%E8%AF%AD%E8%A8%80%E5%9F%BA%E7%A1%80%E9%A2%98.%E6%9C%895%E4%B8%AA%E5%AD%A6%E7%94%9F%2C%E6%AF%8F%E4%B8%AA%E5%AD%A6%E7%94%9F%E6%9C%893%E9%97%A8%E8%AF%BE%E7%9A%84%E6%88%90%E7%BB%A9%2C%E4%BB%8E%E9%94%AE%E7%9B%98%E8%BE%93%E5%85%A5%E5%AD%A6%E7%94%9F%E6%95%B0%E6%8D%AE%E6%9C%895%E4%B8%AA%E5%AD%A6%E7%94%9F%2C%E6%AF%8F%E4%B8%AA%E5%AD%A6%E7%94%9F%E6%9C%893%E9%97%A8%E8%AF%BE%E7%9A%84%E6%88%90%E7%BB%A9%2C%E4%BB%8E%E9%94%AE%E7%9B%98%E8%BE%93%E5%85%A5%E5%AD%A6%E7%94%9F%E6%95%B0%E6%8D%AE%EF%BC%88%E5%8C%85%E6%8B%AC%E5%AD%A6%E7%94%9F%E5%8F%B7%2C%E5%A7%93%E5%90%8D%2C%E4%B8%89%E9%97%A8%E8%AF%BE%E6%88%90%E7%BB%A9%EF%BC%89%2C%E8%AE%A1%E7%AE%97%E5%87%BA%E5%B9%B3%E5%9D%87%E6%88%90%E7%BB%A9%2C%E5%B0%86%E5%8E%9F%E6%9C%89%E6%95%B0%E6%8D%AE%E5%92%8C)
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