wal_bing 2015-11-20 03:14 采纳率: 50%
浏览 1348

c++数组排列问题,请高人解惑~

struct Exam {
string name; //名前
int tall; //身長
int weight; //体重
};

const int MAX = 5; //構造体配列要素数

//健康クラス定義
class Health {
Exam exam[MAX]; //検診構造体配列
public:
//検診設定 ex[]:検診構造体配列
void setExam(Exam ex[])
{
for (int i = 0; i < MAX; i++)
{
exam[i].name = ex[i].name;
exam[i].tall = ex[i].tall;
exam[i].weight = ex[i].weight;
}
}
//検診ソート
void sortExam()
{
string n;
int t;
int w;
for (int i = 0; i < (MAX - 1); i++)
{
for (int j = (i + 1); j < MAX; j++)
{
if (exam[j].tall > exam[i].tall)
{
n = exam[i].name;
t = exam[i].tall;
w = exam[i].weight;
exam[i].name = exam[j].name;
exam[i].tall = exam[j].tall;
exam[i].weight = exam[j].weight;
exam[j].name = n;
exam[j].tall = t;
exam[j].weight = w;
}
else if (exam[j].tall == exam[i].tall)
{
if (exam[j].weight > exam[i].weight)
{
n = exam[i].name;
t = exam[i].tall;
w = exam[i].weight;
exam[i].name = exam[j].name;
exam[i].tall = exam[j].tall;
exam[i].weight = exam[j].weight;
exam[j].name = n;
exam[j].tall = t;
exam[j].weight = w;
}
}
}
}

}
//検診表示
void show()
{
    for (int i = 0; i < MAX; i++)
    {
        cout << exam[i].name << " " << exam[i].tall << " " << exam[i].weight << endl;
    }
}

};
////////////////////////////////////////////////////////////
int main()
{
Health health; //healthオブジェクト

//検診構造体配列宣言
Exam exam[MAX] = {
    { "GUNMO", 160, 80 },
    { "BERZEB", 80, 30 },
    { "HARY", 170, 70 },
    { "TRINITY", 160, 50 },
    { "ROBO", 170, 90 }
};

health.setExam(exam);       //検診設定メソッド呼び出し
health.show();              //ソート前(検診表示)メソッド呼び出し
health.sortExam();      //ソートメソッド呼び出し
cout << endl;
health.show();              //ソート後(検診表示)メソッド呼び出し

_getch();
return 0;

}

我把整段代码都复制过来了,数组排序的时候是先按照身高的降顺,如果身高一样则按体重的降顺,我只会这么写,是不是应该有稍微简单的写法呢?

  • 写回答

2条回答 默认 最新

  • threenewbee 2015-11-20 04:12
    关注

    不回答小日本的问题。

    评论

报告相同问题?

悬赏问题

  • ¥15 依据报错在原代吗格式的基础上解决问题
  • ¥15 在虚拟机中安装flash code
  • ¥15 单片机stm32f10x编写光敏电阻调节3.3伏大功率灯亮度(光强越大灯越暗,白天正常光强灯不亮,使用ADC,PWM等模块)望各位找一下错误或者提供一个可实现功能的代码
  • ¥20 verilog状态机方法流水灯
  • ¥15 pandas代码实现不了意图
  • ¥15 GD32H7 从存储器到外设SPI传输数据无法重复启用DMA
  • ¥25 LT码在高斯信道下的误码率仿真
  • ¥45 渲染完成之后将物体的材质贴图改变,自动化进行这个操作
  • ¥15 yolov5目标检测并显示目标出现的时间或视频帧
  • ¥15 电视版的优酷可以设置电影连续播放吗?