题解 | #牛牛的书#

牛牛的书

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;
}

全部评论

相关推荐

ddd7_:跟我一模一样,加微信的hr都同一个,扫码了白年书人查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务