C语言程序设计题(需要用循环、数组、函数和结构体做。千万不要涉及到C++)。

2024-12-26 22:23:34
推荐回答(3个)
回答1:

没有分没什么动力。。。饿大概的代码给你,你自己在改下 流程图什么的就不说了
能实现学号、姓名、三门课的成绩、总成绩和平均成绩
最后在打印出3门课的总平均成绩及最高分的学生的数据
学生的个数就该下N的值
#include
#include
#include
#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 {
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{
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);
}

回答2:

有点麻烦。。

回答3:

怎么说的那么笼统