考不上研的大学生 2022-12-22 11:32 采纳率: 100%
浏览 50
已结题

c语言冒泡排序修改输出最大最小值

这个代码怎么改(数据结构的),书本上没讲怎么输出最大最小值啊
有没有人指导指导帮忙改一改,明天就要交ww

代码在下面:
void sum_grade(information im[])
{
int i, j;
information temp;

for (i = 0; i < size; i++)//遍历准考证号 
{
    for (j = 0; j < size - 1 - i; j++)//冒泡排序
    {
        if (im[j].sum_grade< im[j + 1].sum_grade)
        {
            temp = im[j];
            im[j] = im[j + 1];
            im[j + 1] = temp;
        }
    }
}
printf("总分从高到低排序后的结果为:\n");
for (i = 0; i < size; i++)
{
    printf("名字 = %s\t准考证号 = %d\t班级 = %s\t\n计算机专业基础综合成绩 = %0.2f\t高数成绩 = %0.2f\t英语成绩 = %0.2f\t思想政治理论成绩 = %0.2f \t总成绩 = %0.2f\n\n",
        im[i].student_name, im[i].student_number, im[i].student_class, im[i].student_jsj, im[i].student_math, im[i].student_ey, im[i].student_sxzz, im[i].sum_grade);
}

}

  • 写回答

3条回答 默认 最新

  • ShowMeAI 2022-12-22 11:46
    关注

    修改后的代码如下,望采纳

    void sum_grade(information im[]) {
        int i, j;
        information temp;
        int max_index = 0, min_index = 0;
        // 记录最大和最小值的下标
        for (i = 0; i < size; i++) // 遍历准考证号 {
            for (j = 0; j < size - 1 - i; j++) // 冒泡排序 {
                if (im[j].sum_grade < im[j + 1].sum_grade) {
                    temp = im[j];
                    im[j] = im[j + 1];
                    im[j + 1] = temp;
                }
                // 更新最大和最小值的下标
                if (im[j].sum_grade > im[max_index].sum_grade) {
                    max_index = j;
                }
                if (im[j].sum_grade < im[min_index].sum_grade) {
                    min_index = j;
                }
            }
        }
        printf("总分从高到低排序后的结果为:\n");
        for (i = 0; i < size; i++) {
            printf("名字 = %s\t准考证号 = %d\t班级 = %s\t\n计算机专业基础综合成绩 = %0.2f\t高数成绩 = %0.2f\t英语成绩 = %0.2f\t思想政治理论成绩 = %0.2f \t总成绩 = %0.2f\n\n",
            im[i].student_name, im[i].student_number, im[i].student_class, im[i].student_jsj, im[i].student_math, im[i].student_ey, im[i].student_sxzz, im[i].sum_grade);
        }
        // 输出最大和最小值
        printf("最大值:%0.2f\n", im[max_index].sum_grade);
        printf("最小值:%0.2f\n", im[min_index].sum_grade);
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 1月1日
  • 已采纳回答 12月24日
  • 创建了问题 12月22日