...存到一个一维数组中,求该学生六门课 用c语言编写
发布网友
发布时间:2024-04-06 11:31
我来回答
共1个回答
热心网友
时间:2024-07-31 05:50
求该学生六门课的什么?总分?平均分?题主貌似没有表述清楚哈
我先帮题主实现录入成绩,计算总分、均分,及按总分由高到低排序功能吧
#include<stdio.h>
#define N 6 /*定义6门课*/
struct student {
int no; /*学号*/
char name[20]; /*姓名*/
float score[N]; /*6门课的成绩*/
int course[N]; /*6门课的名字 其实课程名字和成绩可以组成一个二维数组*/
float sum; /*总分*/
float aver; /*平均分*/
};
void bubble_sort(struct student stu[], int len) { /*反向冒泡排序*/
int i,j;
struct student temp;
for (i=0;i<len-1;i++)
for (j=0;j<len-1-i;j++)
if (stu[j].sum < stu[j+1].sum) {
temp = stu[j];
stu[j] = stu[j+1];
stu[j+1] = temp;
}
}
int main(void) {
int stu_num,i,j;
struct student stu[1000];
printf ("请输入学生人数:");
scanf ("%d",&stu_num);
printf ("\n");
for (i=0;i<stu_num;i++) {
printf ("正在输入第%d个学生的信息:\n",i+1);
printf ("请输入学号:");
scanf ("%d",&stu[i].no);
for (j=0;j<N;j++) {
printf ("请输入第%d门课成绩:",j+1);
scanf ("%f",&stu[i].score[j]);
stu[i].sum += stu[i].score[j];
}
stu[i].aver = stu[i].sum/N;
printf ("\n");
}
printf ("总共%d个学生信息均已输入完毕!\n\n",stu_num);
printf ("以下是%d个学生按总分由高到低排序。\n");
printf ("======================================================\n");
printf ("学号\t课程1\t课程2\t课程3\t课程4\t课程5\t课程6\t总分\t平均分\n");
bubble_sort(stu,stu_num);
for (i=0;i<stu_num;i++) {
printf ("%d\t",stu[i].no);
for (j=0;j<N;j++)
printf ("%.1f\t",stu[i].score[j]);
printf ("%.1f\t%.2f",stu[i].sum,stu[i].aver);
printf ("\n");
}
return 0;
}
执行结果