C语言程序设计 循环、数组、函数、和结构体程序设计

有10个学生,每个学生的数据包括学号、姓名、三门课的成绩、总成绩和平均成绩,从键盘输入10个学生的数据(包括学号、姓名及3门课的成绩),要求打印出每位学生的学号、姓名、三... 有10个学生,每个学生的数据包括学号、姓名、三门课的成绩、总成绩和平均成绩,从键盘输入10个学生的数据(包括学号、姓名及3门课的成绩),要求打印出每位学生的学号、姓名、三门课的成绩、总成绩和平均成绩,最后在打印出3门课的总平均成绩及最高分的学生的数据(包括姓名和总成绩)。要求:
1,根据学生信息定义一个结构体类型,再说明一个该结构体类型的数组。
2,用input函数从键盘上输入10个学生的数据。
3,用average函数求出每个学生总成绩、平均成绩和所有学生的总平均成绩。
4,用maximum函数找出最高分的学生的数据。
5,再主函数中输出每位学生的学号、姓名、三门课的成绩、总成绩和平均成绩以及总平均分和最高分学生的数据。

输出形式如下:
NO name score1 score2 score3 total average
101 wang 80 79 81 240 80.00
102 li 91 90 89 270 90.00
average=85.00
The higehtest score:li,score total:270
展开
 我来答
taohua300
2009-12-19 · TA获得超过529个赞
知道小有建树答主
回答量:722
采纳率:0%
帮助的人:735万
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
typedef struct strStudent{ /*学生信息—结构体*/
char strName[20];
int stuID;
int scoreA;
int scoreB;
int scoreC;
int scoreTot;
float avrScore;
}coStudent;

int maximum (int x,int y);
float average (int nscore1,int nscore2,int nscore3);
void input (coStudent fast);
int main (void)
{
coStudent strstu[10];
int i,p;
i = 0;
while (i < 10)
{
i++; /*循环次数*/
input(strstu[i]);
if (i > 1)
p = maximum(strstu[i].scoreTot,strstu[i - 1].scoreTot);
}
printf(" NO name score1 score2 score3 total average\n");
for (i = 0;i < 10;i++)
printf("%10d %10s %6d %6d %6d %5d %5.2f\n",strstu[i].stuID,strstu[i].strName,strstu[i].scoreA,strstu[i].scoreB,strstu[i].scoreC,strstu[i].scoreTot,strstu[i].avrScore);
printf("Totle score %5d\n",p);
system("pause");
return 0;
}

int maximum (int x,int y) /*最大值*/
{
return x >= y ? x : y;
}
float average (int nscore1,int nscore2,int nscore3) /*平均成绩*/
{
return (nscore1 + nscore2 + nscore3) / 3;
}
void input (coStudent fast)
{
printf("Please input Student ID:");
scanf("%d",&fast.stuID);
printf("Please input Student's Name:");
scanf("%s",&fast.strName);
printf("Please input score of A:");
scanf("%d",&fast.scoreA);
printf("Please input score of B:");
scanf("%d",&fast.scoreB);
printf("Please input score of C:");
scanf("%d",&fast.scoreC);
printf("\n");
fast.scoreTot = fast.scoreA + fast.scoreB + fast.scoreC;
fast.avrScore = average(fast.scoreA,fast.scoreB,fast.scoreC);
}
你自己试着调试一下,我没有环境
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式