user-0 提问: 哪位大吓有C的题来刷一下

回复:
user: user-1
content: // 下面是我写的代码，使用了二维数组，没有使用结构体#include <stdio.h>#include <string.h> #define STUDENTS 5 // 宏定义学生的人数：5个#define SUBJECTS 5 // 宏定义每个学生的科目：英语、数学、语文、体育、音乐 char Name[STUDENTS][11]; // 定义学生的姓名字符数组：Name[0]="小明"，Name[1]="王一呜"float Score[STUDENTS][SUBJECTS + 1]; // 总成绩=英语+数学+语文+体育+音乐 // 函数的声明// 输入学生的姓名和它每科的成绩void inputDate();// 打印排序前的学生的姓名和成绩void printData();// 按学生的总成绩排序（从高到低：冒泡排序）void sortData(); int main() {    // 1、输入学生的姓名和它每科的成绩    inputDate();    // 2、打印排序前的学生的姓名和成绩    printf("排序前的学生的姓名和成绩：\n");    printData();    // 3、按学生的总成绩排序（从高到低）    sortData();    // 4、打印排序后的学生的姓名和成绩    printf("排序后的学生的姓名和成绩：\n");    printData();    return 0;} // 函数的定义// 输入学生的姓名和它每科的成绩void inputDate() {    // 使用for循环，输入每个学生的姓名和他们每科的成绩    for (int indexI = 0; indexI < STUDENTS; indexI++) {        // 1、输入学生的姓名        printf("请输入第%d个学生的姓名（一共%d个）：", indexI + 1, STUDENTS);        scanf("%s", Name[indexI]);        // 2、输入这个学生的每科成绩        printf("请输入%s的英语、数学、语文、体育、音乐成绩（使用逗号分隔它们）：", Name[indexI]);        scanf("%f,%f,%f,%f,%f", &Score[indexI][0], &Score[indexI][1], &Score[indexI][2], &Score[indexI][3], &Score[indexI][4]);        // 3、统计这个学生的总成绩        // Score[indexI][SUBJECTS] = Score[indexI][0] + Score[indexI][1] + Score[indexI][2] +Score[indexI][3] +Score[indexI][4];        Score[indexI][SUBJECTS] = 0.00; // 初始化总成绩为0.00        for (int indexJ = 0; indexJ < SUBJECTS; indexJ++) {            Score[indexI][SUBJECTS] += Score[indexI][indexJ];        }        // printf("%s的英语=%8.2f、数学=%8.2f、语文=%8.2f、体育=%8.2f、音乐=%8.2f、总成绩=%8.2f\n", Name[indexI], Score[indexI][0],        //       Score[indexI][1], Score[indexI][2], Score[indexI][3], Score[indexI][4], Score[indexI][5]);    }} // 打印排序前的学生的姓名和成绩void printData() {    // 1、打印标题    printf("+----------+--------+--------+--------+--------+--------+--------+\n");    printf("|   姓名   |  英语  |  数学  |  语文  |  体育  |  音乐  | 总成绩 |\n");    printf("+----------+--------+--------+--------+--------+--------+--------+\n");    // 2、使用for循环打印每个学生的姓名和成绩    for (int indexI = 0; indexI < STUDENTS; indexI++) {        printf("|%10s|", Name[indexI]); // 打印学生的姓名        for (int indexJ = 0; indexJ < SUBJECTS + 1; indexJ++) {            printf("%8.2f|", Score[indexI][indexJ]); // 打印学生每科的成绩（包括总成绩）        }        printf("\n" );        printf("+----------+--------+--------+--------+--------+--------+--------+\n");    }} // 按学生的总成绩排（从高到低：冒泡排序）void sortData() {    for (int indexI = 0; indexI < STUDENTS - 1; indexI++) {        for (int indexJ = 0; indexJ < STUDENTS - 1 - indexI; indexJ++) {            if (Score[indexJ][SUBJECTS] < Score[indexJ + 1][SUBJECTS]) {                // 1、交换他们的姓名                char tempName[11];                strcpy(tempName, Name[indexJ]); // 把当前位置学生的姓名拷贝到临时变量中                strcpy(Name[indexJ], Name[indexJ + 1]); // 把下一个位置的学生姓名拷贝到当前位置                strcpy(Name[indexJ + 1], tempName); // 把临时变量拷贝到下一个位置的学生姓名中                // 2、交换他们每一科的成绩                for (int indexK = 0; indexK < SUBJECTS + 1; indexK++) {                    float tempScore = Score[indexJ][indexK]; // 把当前位置学生的每一科成绩存放到临时变量中                    Score[indexJ][indexK] = Score[indexJ + 1][indexK]; // 把下一个位置的学生成绩存放到当前位置上                    Score[indexJ + 1][indexK] = tempScore; // 把临时变量存放到下一个位置的学生成绩中                }            }        }    }}

user: user-0
content: #include<stdio.h> #include<stdlib.h> #pragma warning(disable:4996) #define N 5 struct Student {     int name;     float chinese;     float mathematics;     float english;     float sports;     float music;     float total_score; }stu[N]; struct Student* p;    int main() {     printf("please enter the grades of Nstudents in each subject:\n");     int y;     for (y=0;y<N;y++)     {         scanf("%d,%f,%f,%f,%f,%f",&stu[y].name, &stu[y].chinese, &stu[y].mathematics, &stu[y].english, &stu[y].sports, &stu[y].music );         stu[y].total_score = (stu[y].chinese + stu[y].mathematics + stu[y].english + stu[y].sports + stu[y].music);     }            int i, j, k;     struct Student temp;     for (i = 0; i < N - 1; i++)     {         k = i;         for (j = i + 1; j < N; j++)         {             if (stu[j].total_score > stu[k].total_score) k = j;             temp = stu[k]; stu[k] = stu[i]; stu[i] = temp;         }      }      printf("Results of %d students in each subject : \n",N);     for (p = stu; p < stu + N; p++)     {         printf("name:%d,chinese:%0.2f,mathematics:%0.2f,english:%0.2f,sports:%0.2f,music%0.2f,totoal_socre:%0.2f", p->name, p->chinese,p->mathematics, p->english, p->sports, p->music,p->total_score);         printf("\n");     }                       return 0; }        ```c #include<stdio.h> #include<stdlib.h> #pragma warning(disable:4996) #define N 5 struct Student {     int name;     float chinese;     float mathematics;     float english;     float sports;     float music;     float total_score; }stu[N]; struct Student* p;    int main() {     printf("please enter the grades of Nstudents in each subject:\n");     int y;     for (y=0;y<N;y++)     {         scanf("%d,%f,%f,%f,%f,%f",&stu[y].name, &stu[y].chinese, &stu[y].mathematics, &stu[y].english, &stu[y].sports, &stu[y].music );         stu[y].total_score = (stu[y].chinese + stu[y].mathematics + stu[y].english + stu[y].sports + stu[y].music);     }            int i, j, k;     struct Student temp;     for (i = 0; i < N - 1; i++)     {         k = i;         for (j = i + 1; j < N; j++)         {             if (stu[j].total_score > stu[k].total_score) k = j;             temp = stu[k]; stu[k] = stu[i]; stu[i] = temp;         }      }      printf("Results of %d students in each subject : \n",N);     for (p = stu; p < stu + N; p++)     {         printf("name:%d,chinese:%0.2f,mathematics:%0.2f,english:%0.2f,sports:%0.2f,music%0.2f,totoal_socre:%0.2f", p->name, p->chinese,p->mathematics, p->english, p->sports, p->music,p->total_score);         printf("\n");     }                       return 0; }          ```

user: user-0
content: 多复制了一份，只看一份就可以了。

user: user-1
content: 我今天的作业要求：1、输入不少于5名学生的姓名和他们语文、数学、英语、体育、音乐的成绩（小数保留2位即可）2、按他们的总成绩从高到低进行排序（冒泡、选择、快速、希尔随便选一个）3、输出像如下形式的报表：    +----------+--------+--------+--------+--------+--------+--------+    |   姓名   |  语文  |  数学  |  英语  |  体育  |  音乐  | 总成绩 |    +----------+--------+--------+--------+--------+--------+--------