题解 | #牛牛的书#
牛牛的书
https://www.nowcoder.com/practice/30bb969e117b4f6d934d4b60a2af7489
#include <iostream>
using namespace std;
typedef struct book{
string name;
int price;
};
// 创建book的结构体,使用typedef重命名,以后创建对象时不用谢struct
int main() {
int num;
cin >> num;
book BookArr[num];
for(int i = 0; i < num ; i++){
cin >> BookArr[i].name;
cin >> BookArr[i].price;
}
//给每个结构体赋值, cin会跳过输入的空格
int MinIdx;
book temp;
for(int i = 0; i < num ; i++){
MinIdx = i;
//对结构体循环查找最小值,由于前面序号的已经按顺序排好,只需要排i后面的
for(int j = i + 1; j < num ; j++){
if(BookArr[j].price < BookArr[MinIdx].price) MinIdx = j ;
//每次对i后面的值查找最小值,并更新最小值的序号
}
if( MinIdx != i){
temp = BookArr[i] ;
BookArr[i] = BookArr[MinIdx] ;
BookArr[MinIdx] = temp ;
}
//如果i不是最小值,则对最小值和i所在的结构体调换
}
for(int i = 0; i < num ; i++){
cout << BookArr[i].name << endl;
}
//输出排序后的结构体数组
return 0;
}



