学不会编程的大学生 2022-12-22 11:32 采纳率: 100%
浏览 47
已结题

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日

悬赏问题

  • ¥15 用lstm来预测股票价格
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上