C语言程序设计题(需要用循环、数组、函数和结构体做。千万不要涉及到C++)。
有一道C语言程序设计题(需要用循环、数组、函数和结构体做。千万不要涉及到C++)。有一道C语言程序设计题(需要用循环、数组、函数和结构体做。千万不要涉及到C++)。[标签...
有一道C语言程序设计题(需要用循环、数组、函数和结构体做。千万不要涉及到C++)。 有一道C语言程序设计题(需要用循环、数组、函数和结构体做。千万不要涉及到C++)。 [ 标签:数组 结构体,函数,结构体 ] 有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 还要求写出流程图
展开
3个回答
展开全部
没有分没什么动力。。。饿大概的代码给你,你自己在改下 流程图什么的就不说了
能实现学号、姓名、三门课的成绩、总成绩和平均成绩
最后在打印出3门课的总平均成绩及最高分的学生的数据
学生的个数就该下N的值
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#define N 2
typedef struct student
{
int num;
char* name;
int score[3];
}Student;
void print(Student myclass[],int length)
{
int i=0,sum=0,sum1=0,sum2=0,max=0;
for(i=0;i<length;i++)
{
printf("num:%d name:%s 数学:%d 英语:%d 自然:%d 平均=%.2lf 总分=%d\n",
myclass[i].num,myclass[i].name,myclass[i].score[0],myclass[i].score[1],myclass[i].score[2],(myclass[i].score[0]+myclass[i].score[1]+myclass[i].score[2])/3.0,(myclass[i].score[0]+myclass[i].score[1]+myclass[i].score[2]));
sum=sum+myclass[i].score[0];
sum1=sum1+myclass[i].score[1];
sum2=sum2+myclass[i].score[2];
if((myclass[i].score[0]+myclass[i].score[1]+myclass[i].score[2])>max)
max=i;
}
printf("平均 数学:%d 英语:%d 自然:%d\n",sum/length,sum1/length,sum2/length);
printf("最高:num:%d name:%s 数学:%d 英语:%d 自然:%d 平均=%.2lf 总分=%d\n",
myclass[max].num,myclass[max].name,myclass[max].score[0],myclass[max].score[1],myclass[max].score[2],(myclass[max].score[0]+myclass[max].score[1]+myclass[max].score[2])/3.0,(myclass[max].score[0]+myclass[max].score[1]+myclass[max].score[2]));
}
void input(Student myclass[],int length)
{
int i=0;
for(i=0;i<length;i++)
{
printf("请输入第%d个学生的信息\n",i+1);
printf("学好");
scanf("%d",&myclass[i].num);
myclass[i].name=(char*)malloc(sizeof(char)*20);
printf("姓名");
scanf("%s",myclass[i].name);
printf("数学");
scanf("%d",&myclass[i].score[0]);
printf("英语");
scanf("%d",&myclass[i].score[1]);
printf("自然");
scanf("%d",&myclass[i].score[2]);
}
}
int main()
{
Student myclass[N];
input(myclass,N);
print(myclass,N);
}
能实现学号、姓名、三门课的成绩、总成绩和平均成绩
最后在打印出3门课的总平均成绩及最高分的学生的数据
学生的个数就该下N的值
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#define N 2
typedef struct student
{
int num;
char* name;
int score[3];
}Student;
void print(Student myclass[],int length)
{
int i=0,sum=0,sum1=0,sum2=0,max=0;
for(i=0;i<length;i++)
{
printf("num:%d name:%s 数学:%d 英语:%d 自然:%d 平均=%.2lf 总分=%d\n",
myclass[i].num,myclass[i].name,myclass[i].score[0],myclass[i].score[1],myclass[i].score[2],(myclass[i].score[0]+myclass[i].score[1]+myclass[i].score[2])/3.0,(myclass[i].score[0]+myclass[i].score[1]+myclass[i].score[2]));
sum=sum+myclass[i].score[0];
sum1=sum1+myclass[i].score[1];
sum2=sum2+myclass[i].score[2];
if((myclass[i].score[0]+myclass[i].score[1]+myclass[i].score[2])>max)
max=i;
}
printf("平均 数学:%d 英语:%d 自然:%d\n",sum/length,sum1/length,sum2/length);
printf("最高:num:%d name:%s 数学:%d 英语:%d 自然:%d 平均=%.2lf 总分=%d\n",
myclass[max].num,myclass[max].name,myclass[max].score[0],myclass[max].score[1],myclass[max].score[2],(myclass[max].score[0]+myclass[max].score[1]+myclass[max].score[2])/3.0,(myclass[max].score[0]+myclass[max].score[1]+myclass[max].score[2]));
}
void input(Student myclass[],int length)
{
int i=0;
for(i=0;i<length;i++)
{
printf("请输入第%d个学生的信息\n",i+1);
printf("学好");
scanf("%d",&myclass[i].num);
myclass[i].name=(char*)malloc(sizeof(char)*20);
printf("姓名");
scanf("%s",myclass[i].name);
printf("数学");
scanf("%d",&myclass[i].score[0]);
printf("英语");
scanf("%d",&myclass[i].score[1]);
printf("自然");
scanf("%d",&myclass[i].score[2]);
}
}
int main()
{
Student myclass[N];
input(myclass,N);
print(myclass,N);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询