试编写一个程序完成:有5个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入5个学生数据,要

#include<stdio.h>

struct student
{
int num;
char name[20];
float score[3];

}stu[5];
int main()
{
int i,k,l;
float ave1=0,ave2=0,sum=0,max;
printf("please input all data of five students:\n");
for(i=0;i<5;i++)
{

scanf("%2d %s %f %f %f",&stu[i].num,&stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);

}
for(i=0;i<5;i++)
{
sum=sum+stu[i].score[0]+stu[i].score[1]+stu[i].score[2];
}
ave1=sum/15;
printf("the average score is:%f\n",ave1);

for(k=0;k<5;k++)
{

for(l=0;l<3;l++)
{
max=stu[k].score[l];
if(max<stu[k].score[l+1])
{
max=stu[k].score[l+1];
}

}
}
ave2=(stu[k].score[0]+stu[k].score[1]+stu[k].score[2])/3;
printf("%d %s %f %f %f %f",stu[k].num,stu[k].name,stu[k].score[0],stu[k].score[1],stu[k].score[2],ave2);

return 0;

}哪里出问题了啊?、、
有5个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入5个学生数据,要求输出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩、平均分数)。是这个问题的??????注意是求最高分的同学数据不是最高平均分!!

#include<stdio.h>
#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++)
{printf("enter number");

scanf("%d",&stu[i].num);

printf("enter name");

scanf("%s",&stu[i].name);

printf("enter score1");

scanf("%d",&stu[i].score1);

printf("enter score2");

scanf("%d",&stu[i].score2);

printf("enter score3");

scanf("%d",&stu[i].score3);
}
}

average() /*求平均值函数*/

{int i;
for(i=0;i<5;i++)
{stu[i].pj=stu[i].score1+stu[i].score1+stu[i].score3;
zpj+=stu[i].pj;
}
for(i=0;i<5;i++)
stu[i].pj/=3;
zpj/=max;
}

MAX() /*找出最高平均值的学生的函数*/
{int i,j;
temp=stu[0];
for(i=0;i<max-1;i++)
for(j=i+1;j<max;j++)
if(stu[i].pj<stu[j].pj)
temp=stu[j];
}

output() /*输出函数*/

{int i;
for(i=0;i<max;i++)
printf("num=%d\n name=%s\n score1=%d\n score2=%d\n score3=%d\n aver=%f\n",
stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].pj);

printf("总平均分=%f\n\n",zpj);

printf("平均分最高的学生\nnum=%d\n name=%s\n score1=%d\n score2=%d\n score3=%d\n aver=%f\n",
temp.num,temp.name,temp.score1,temp.score2,temp.score3,temp.pj);

}
void main() /*主函数*/
{

Input();
average();
MAX();
output();
}

自己写的 符合你的要求
不足之处还请指教
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-12-31
#include <stdio.h>
#include <stdlib.h>
void main()
{
int i = 0;
int n = 0;
float *a[2] = {NULL};
float sum[2] = {0};
float avg[2] = {0};
float max[2] = {0};
float min[2] = {0};

printf("请输入有多少个学生:");
scanf("%d", &n);
a[0] = (float *)malloc(sizeof(float)*n);
a[1] = (float *)malloc(sizeof(float)*n);
for (i = 0; i < n; ++i)
{
printf("请输入第%d个学生的数学成绩:", i+1);
scanf("%f", &a[0][i]);
sum[0] += a[0][i];
if (a[0][i]>max[0])
{
max[0] = a[0][i];
}
printf("请输入第%d个学生的英语成绩:", i+1);
scanf("%f", &a[1][i]);
sum[1] += a[1][i];
if (a[1][i]>max[1])
{
max[1] = a[1][i];
}
}
min[0] = a[0][0];
min[1] = a[1][0];
for (i = 1; i < n; ++i)
{
if (a[0][i]<min[0])
{
min[0] = a[0][i];
}
if (a[1][i]<min[1])
{
min[1] = a[1][i];
}
}
avg[0] = sum[0]/n;
avg[1] = sum[1]/n;
printf("总成绩 平均分 最高分 最低分\n");
for (i = 0; i < 2; ++i)
{
printf("%-8.2f%-8.2f%-8.2f%-8.2f\n", sum[i], avg[i], max[i], min[i]);
}
}
第2个回答  2010-12-18
请问错误显示的是什么?或者这个程序编译后出现什么结果了,哪里不符合要求?本回答被网友采纳

...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]...

有5个学生,每个学生的数据包括学号、姓名、三门课的成绩,从键盘输入5...
printf("\\n成绩最高的学生是:\\n"); printf("平均成绩:%6.2f\\n",stu[m].aver);\/\/平均成绩在输出函数中是输不出的因为输出函数中没有m的值 return stu[m]; } void print( Student stu) { printf("学号:%d\\n姓名:%s\\n三门课成绩:%5.1f%5.1f%5.1f\\n",stu.num,stu.name,stu.score[0],stu.s...

...从键盘输入以上的数据(包括学号,姓名,3门课的成绩),
printf("学号:%d\\n姓名:%s\\n三门课成绩:%5.1f%5.1f%5.1f\\n",stu.num,stu.name,stu.score[0],stu.score[1],stu.score[2]);} 不谢

JAVA题目:求一份 输入5个学生姓名,每个学生3个成绩,平均分的代码
System.out.println("请依次输入学生号,姓名,三门课成绩,用逗号隔开,每个学生之间用句号隔开"); String str = input.next(); String[] student = str.split("\\\\."); for(int i=0;i<student.length;

编写一个数组用于存放5个学生的英语成绩,输入5个学生的英语成绩,并输出...
3、 有五个学生,每个学生有3门课(语文、数学、英语)的成绩,写一个程序接收从键盘输入学生的信息,输入格式为:name,30,30,30(姓名,三门课成绩),然后把输入的学生信息按总分从高到低的顺序写入到一个名称"stu.txt"文件中。要求:stu.txt文件的格式要比较直观,打开这个文件,就可以很清楚的...

...1. 有5个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输...
include<stdio.h> 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...

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

有五个学生,每个学生有三门课的成绩,从键盘上输入学生的学号,姓名...
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 张三 ...

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

从键盘输入5名学生的信息,包含学号,姓名,数学成绩英语成绩,C语言成绩...
if(min>a[i]) {bb=pb,min=a[i];}逻辑错误,刚开始”min=a[0]而开始运行后,min不可能大于a[i],要在这一句前再赋给min一个值,改为min=a[0];if(min>=a[i]) {bb=pb,min=a[i];}就行了,我已经试过了,运行成功

相似回答