经常有点小迷糊 2020-05-22 18:53 采纳率: 96.7%
浏览 69
已采纳

标题:请问为什么我的排序有问题?

#include <iostream>
#include <Windows.h>
using namespace std;
int main()
{
    BOOL WINAPI SetConsoleTitle(
        __in LPCTSTR lpConsoleTitle
    );
    SetConsoleTitle(L"谁考了第k名?");
    system("color F3");
    int value_person_sum;
    int value_look_person;
    cout << "请输入人数和需要查找的人!";
    cin >> value_person_sum >> value_look_person;
    int* value_student_number = new int[value_person_sum];
    double* value_student_grade = new double[value_person_sum];
    for (int i = 0; i < value_person_sum; i++)
    {
        cout << "第" << i + 1 << "名同学的学号和成绩:";
        cin >> value_student_number[i] >> value_student_grade[i];
    }
    cout << "输入完成!" << endl;
    Sleep(1000);
    for (int i = 0; i < value_person_sum; i++)
    {
        for (int j = i; j < value_person_sum; j++)
        {
            if (value_student_grade[j] > value_student_grade[i])
            {
                double temp = value_student_grade[j];
                value_student_grade[j] = value_student_grade[i];
                value_student_grade[i] = temp;
                int temp1 = value_student_number[j];
                value_student_number[j] = value_student_number[i];
                value_student_number[i] = temp1;
            }
        }
    }
    cout << "学号是:" << value_student_number[value_look_person] << "\n成绩是:" << value_student_grade[value_look_person] << endl;
    system("pause");
    system("cls");
    return 0;
}

请问我的循环哪里有问题啊?

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-05-22 20:01
    关注
        for (int i = 0; i < value_person_sum - 1; i++)
        {
            for (int j =0; j < value_person_sum - i - 1; j++)
            {
                if (value_student_grade[j] > value_student_grade[j+1])
                {
                    double temp = value_student_grade[j];
                    value_student_grade[j] = value_student_grade[j+1];
                    value_student_grade[j+1] = temp;
                    int temp1 = value_student_number[j];
                    value_student_number[j] = value_student_number[j+1];
                    value_student_number[j+1] = temp1;
                }
            }
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用