wKiom1WNaM6AWB0FAAKSbDKCtUk322.jpg

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;
}

代码很糙,请各位指教...