ReadMe文件
5名学生,语数外、物理四门成绩。
1、每个人的总分,平均分
2、所有学生的各科成绩、平均分
3、按总分排序冒泡或选择排序
4、输入成绩,结果表格
5、下标法、指针法
结构体数组代表学生,学生(学号,姓名,语文、数学、英语、物理、总分、平均分)
输入并把成绩加入数组,等待排序
输出结果
分散成函数->文件
main.c
#include<stdio.h> /*main.c *OS:debian-linux *Compile:gcc *Date:2015-06-24 * * */ typedef struct returnValue Array; struct student { char num[20]; char name[20]; int chinese; int math; int english; int physical; float score; float average; }stu[5]= { {"1101","张一",0,0,0,0,0,0}, {"1102","李二",0,0,0,0,0,0}, {"1103","刘三",0,0,0,0,0,0}, {"1104","赵四",0,0,0,0,0,0}, {"1105","钱五",0,0,0,0,0,0} }; int bs[5]={0,1,2,3,4}; void MainMenu() { printf("请输入成绩:\n"); } void InputScore() { int i; for(i=0;i<5;i++) { scanf("%d",&stu[i].chinese); scanf("%d",&stu[i].math); scanf("%d",&stu[i].english); scanf("%d",&stu[i].physical); } } void PrintAll() { int j; printf("学号 姓名 语文 数学 英语 物理 总分 平均分\n"); for(j=0;j<5;j++) { printf("%s %s %4d %4d %4d %4d %4.1f %6.1f \n", stu[j].num, stu[j].name, stu[j].chinese, stu[j].math, stu[j].english, stu[j].physical, stu[j].score, stu[j].average); printf("--------------------------------------------\n"); } } void SumAve() { int k; for(k=0;k<5;k++) { stu[k].score = stu[k].chinese+stu[k].math+stu[k].english+stu[k].physical; stu[k].average = stu[k].score/4; } } void BubbleSort() { int temp= 0; //中间变量 int l,m; //冒泡法排序 for(l=0;l<5;l++) { for(m=l+1;m<5;m++) { if(stu[bs[l]].score > stu[bs[m]].score) { temp = bs[l]; bs[l] = bs[m]; bs[m] = temp; } } } } void PrintAllAfterBubbleSort() { printf("按照总分排序后:\n"); int n; printf("学号 姓名 语文 数学 英语 物理 总分 平均分\n"); for(n=0;n<5;n++) { printf("%s %s %4d %4d %4d %4d %4.1f %6.1f \n", stu[bs[n]].num, stu[bs[n]].name, stu[bs[n]].chinese, stu[bs[n]].math, stu[bs[n]].english, stu[bs[n]].physical, stu[bs[n]].score, stu[bs[n]].average); printf("--------------------------------------------\n"); } printf("\n"); } int main() { MainMenu(); InputScore(); SumAve(); PrintAll(); BubbleSort(); PrintAllAfterBubbleSort(); return 0; }
代码很糙,请各位指教...
本文出自 “p6xos” 博客,请务必保留此出处http://p6xos.blog.51cto.com/6221518/1666091
原文地址:http://p6xos.blog.51cto.com/6221518/1666091