C语言编程题:有5个学生,每个学生有3门课成绩,从键盘上输入以上数据(包括学号、姓名、数学语文英

C语言编程题:有5个学生,每个学生有3门课成绩,从键盘上输入以上数据(包括学号、姓名、数学语文英语三门课成绩), 计算出每个学生的平均成绩。要求:将原有数据和计算出的平均分数放在磁盘stu.txt中,并且屏幕上可以浏览5个学生的成绩

#include <stdio.h>
#include <stdlib.h> 
#define NAME_MAX 10
#define NUMBER_MAX 10
#define STUDENTS_MAX 5
#define CLEAR_ENTER(array) for(int idx=0;array[idx]!='\0';idx++)\
if(array[idx]=='\n')\
array[idx]='\0';
typedef unsigned int Uint32;
typedef struct stu
{
char name[NAME_MAX];
char stu_number[NUMBER_MAX];
Uint32 chinese;
Uint32 math;
Uint32 english;
} stu;

int main(void)
{
stu students[STUDENTS_MAX];
int idx=0;
printf("输入5个学生的信息\n");
for(idx=0;idx<STUDENTS_MAX;idx++)
{
printf("name:");
fgets(students[idx].name,NAME_MAX,stdin);
printf("number:");
//fgets(students[idx].stu_number,NUMBER_MAX,stdin);
fgets(students[idx].stu_number,NUMBER_MAX,stdin);
printf("三项分数(语文,数学,英语):");
scanf("%d%d%d",&students[idx].chinese,&students[idx].math,&students[idx].english);
getchar();
}
FILE * fp = fopen("stu.txt","w+");
if(!fp)
return -1;
for(idx=0;idx<STUDENTS_MAX;idx++)
{
printf("name:%s\nnumber:%s\nchinese:%d\nmath:%d\nenglish:%d\n",students[idx].name,
students[idx].stu_number,
students[idx].chinese,
students[idx].math,
students[idx].english);
fprintf(fp,"name:%s\nnumber:%s\nchinese:%d\nmath:%d\nenglish:%d\n",students[idx].name,
students[idx].stu_number,
students[idx].chinese,
students[idx].math,
students[idx].english);
}
system("pause");
return 0;
}

简单的写了一个,没有调试过。编译通过,Mingw3.4.7.

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-12-04
#include<stdio.h>
int main()
{
void aver(float *p,int n,int m);
int i,j;
float score[5][3];float *p;
p=score[0];
for(i=0;i<5;i++)
{
printf("请输入第%d学生的三门课程的成绩:\n",i+1);
for(j=0;j<3;j++)
scanf("%f\n",&score[i][j]);
}
aver(p,5,3);
}

void aver(float *p,int n,int m)
{
float sum;
int i,j;
for(i=0;i<n;i++)
{sum=0;
for(j=0;j<m;j++)
sum+=*(p+i*m+j);
printf("\n第%d个学生平均成绩:%5.2f\n",i+1,sum/m);
}
}
第2个回答  推荐于2018-02-22
#include "stdio.h"
struct student
{ char num[6];
char name[8];
int score[3];
float avr;
} stu[5];
main()
{int i,j,sum;
FILE *fp;
/*input*/
for(i=0;i<5;i++)
{ printf("\n please input No. %d score:\n",i);
printf("stuNo:");
scanf("%s",stu[i].num);
printf("name:");
scanf("%s",stu[i].name);
sum=0;
for(j=0;j<3;j++)
{ printf("score %d.",j+1);
scanf("%d",&stu[i].score[j]);
sum+=stu[i].score[j];
}
stu[i].avr=sum/3.0;
}
fp=fopen("stud","w");
for(i=0;i<5;i++)
if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
printf("file write error\n");
fclose(fp);
}本回答被网友采纳

...1) 有5个学生,每个学生的数据包括学号、姓名、3门课的成绩_百度...
} STU;void input(STU *stu, int num) \/\/stu为学生数组的首地址,num为数组长度 { int i ;printf("请输入%d个学生的基本情况: \\n",num) ;printf("姓名 学号 成绩一 成绩二 成绩三\\n") ;for(i=0; i<num; i++){ scanf("%s%s%f%f%f",&stu[i].name,&stu[i].stunum,&stu[i]...

有五个学生,每个学生有三门课的成绩,从键盘上输入学生的学号,姓名...
public static void main(String[] args) { Scanner sc = new Scanner(System.in);\/\/定义学生类数组,里面存放五个学生的信息 Student[] stus = new Student[5];System.out.println("请输入5个学生的信息:");for(int i=0;i<stus.length;i++){ String str = sc.nextLine();\/\/001 张三 ...

c语言,5个学生,每人3门成绩,要求键盘输入学生数据(学号,姓名,成绩...
stu[i].aver=sum\/3;cout<<"the "<<i<<" student's average score is "<<stu[i].aver<<endl;} fclose(stdout);}

...包括学生学号(字符型)、姓名(字符型)和3门课成绩(整型)
s[i].sum += s[i].score[j]; \/\/计算成绩总和 s[i].ave = s[i].sum;} } printf("before sort\\n"); \/\/ 排序前信息输出 for(i = 0; i < 5; ++i){ printf("no=%d name=%s ", s[i].no, s[i].name);for(j = 0; j < 3; ++j)printf("%d ", s[...

...有5个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入...
define max 5 \/*设定要输入成绩的学生个数*\/ double zpj; \/*总平均值*\/ struct student \/*结构体*\/ { int num;char name[10];int score1;int score2;int score3;double pj;};struct student stu[max],temp;void Input() \/*输入函数*\/ { int i;for(i=0;i<max;i++)...

用C语言编写程序:有五个学生的三门课程的成绩,求每门课程的平均成绩
程序设计思路:首先我们需要定义一个学生的结构体,用于存放学生信息;接着是3个方法,一个输入学生信息的方法,一个是计算学生每门课程平均成绩的,最后一个是输出学生所有信息,包括计算好的平均成绩,具体实现代码如下:include <stdio.h> include <stdlib.h>#define ARRAY_LEN 100 \/*数组长度*\/ ...

...从键盘输入5名学生的学号、姓名以及3门课成绩,计算每名同学的总分...
第一空:scanf("%d %s",&stu[i].num,stu[i].name);第二空:scanf("%f",&stu[i].sco[j]);第三空:stu[i].sum+=stu[i].sco[j];

利用C语言,建立一个五个学生的信息登记表,要求有学号、姓名、和三门课...
for(i=1;i<=5;i++){ printf("%s%d%s\\n","输入第",i,"个学生信息(科目之间相差一个tab键):");printf("%s\\t%s\\t%s\\t\\n","MATH","C","ENGLISH");scanf("%d %d %d",&info[i-1].MATH,&info[i-1].C,&info[i-1].ENGLISH);info[i-1].TOTAL=info[i-1].MATH+info[i-...

c语言,有5个学生的信息(包括学号,姓名,成绩),要求按照成绩的高低顺序...
Li",86},{10108,"Ling",73.5},{10110,"Sun",100}}; int n=5; int i; int j; struct Student temp; printf("The order is:\\n"); for(i=n-1;i>0;i--){ for(j=0;j<i;j++){ if(stu[j].score<stu[j+1]...

用C语言数组写一个学生基本信息表,包括学号,姓名,年龄,成绩。有5个...
姓名=张三 年龄=18 成绩=85.50 学号=10002 姓名=李四 年龄=19 成绩=88.50 学号=10003 姓名=王五 年龄=20 成绩=90.80 学号=10004 姓名=小明 年龄=21 成绩=60.00 学号=10005 姓名=小红 年龄=18 成绩=75.50 ...

相似回答