作业帮 > 综合 > 作业

C语言基础题.有5个学生,每个学生有3门课的成绩,从键盘输入学生数据

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/11 23:56:19
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门课的成绩,从键盘输入学生数据
把你的程序改了下:
#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
C语言基础题.有5个学生,每个学生有3门课的成绩,从键盘输入学生数据 有5个学生,每个学生有3门课的成绩,从键盘输入以上的数据(包括学号,姓名,3门课的成绩),计算出平均成绩,将原有数据和计 c语言 设一个班有10个学生,每个学生有3门课考试成绩,编程求每个学生成绩和个门平均成绩 编写程序:从键盘输入n个学生6门课程的成绩,计算每个学生的平均成绩,并按平均成绩从高到低输出每个学生 编写程序,从键盘输入6名同学的5门成绩,分别统计出每个学生的平均成绩.用C语言编写 C语言编程题:从键盘输入10个学生的成绩,计算平均成绩,统计及格人数,计算高于平均分的学生的分数 C语言填空 从键盘输入5名学生的学号、姓名以及3门课成绩,计算每名同学的总分和平均分并按格式输出 编写程序处理10个学生的信息,每个学生的信息包括:学号、姓名、三门成绩.要求从键盘输入学生的数据用一个函数实现,输出成绩 求C语言程序:创建二维数组 输入5个学生的四门课成绩 编程计算每个学生的总分和每门课的平均分~ ( c语言)定义一个2维数组,从键盘输入的10个学生4门功课成绩,输出每门功课中的最大值、最小值、平均值 编写程序要求从键盘输入若干名学生数据(包括学号 姓名 三门课成绩 ),计算每位学生的总分,将原有数据和 编程统计全班学生成绩.要求每次键盘输入一个学生的3门课程分数,计算并输出每个学生的总分和平均分