当前位置: 首页 > news >正文

习题4.4 给出4个湖从大到小的顺序

我国有4大淡水湖。

A说:洞庭湖最大,洪泽湖最小,鄱阳湖第三。

B说:洪泽湖最大,洞庭湖最小,鄱阳湖第二,太湖第三。

C说:洪泽湖最小,洞庭湖第三。

D说:鄱阳湖最大,太湖最小,洪泽湖第二,洞庭湖第三。

4个人每个人仅答对了一个,请编程给出4个湖从大到小的顺序。

//************************************************
//* Source Name: ChapterFour_ExerciseThree.cpp
//* Founction  : The ranking of the four major freshwater lakes
//* Author	   : Skyera
//* Create Time	   : 2025-7-19
//* Modify	   : 
//* Modify Time:
//************************************************
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>using namespace std;struct Lake{string name;int rank;
};// 检查排列是否满足条件
bool checkRanking(const vector<Lake>& lakes){// 找到各湖的排名int dongting=-1, hongze=-1, poyang=-1, taihu=-1;for(const auto& lake:lakes){if(lake.name=="洞庭湖")	dongting = lake.rank;if(lake.name=="洪泽湖")	hongze = lake.rank;if(lake.name=="鄱阳湖")	poyang = lake.rank;if(lake.name=="太湖")	taihu = lake.rank; }// 统计每个人答对的数量int correctA=0, correctB=0, correctC=0, correctD=0;// A的陈述:洞庭湖最大,洪泽湖最小,鄱阳湖第三if(dongting==1) correctA++;if(hongze==4) correctA++;if(poyang==3) correctA++;if(correctA!=1) return false;// B的陈述:洪泽湖最大,洞庭湖最小,鄱阳湖第二,太湖第三if(hongze==1) correctB++;if(dongting==4) correctB++;if(poyang==2) correctB++;if(taihu==3) correctB++;if(correctB!=1) return false;// C的陈述:洪泽湖最小,洞庭湖第三if(hongze==4) correctC++;if(dongting==3) correctC++;if(correctC!=1) return false;// D的陈述:鄱阳湖最大,太湖最小,洪泽湖第二,洞庭湖第三if(poyang==1) correctD++;if(taihu==4) correctD++;if(hongze==2) correctD++;if(dongting==3) correctD++;if(correctD!=1) return false;return true;
}int main()
{// 初始化四个湖vector<Lake> lakes ={{"洞庭湖",1},{"洪泽湖",2},{"鄱阳湖",3},{"太湖",4}};// 生成所有排列并检查do{if(checkRanking(lakes)){// 输出结果cout << "四大淡水湖从大到小的顺序: "<< endl;for(const auto& lake:lakes){cout << lake.rank << " . " << lake.name << endl;}return 0;}}while(next_permutation(lakes.begin(), lakes.end(), [](const Lake& a, const Lake& b){return a.rank < b.rank;}));cout << "未找到符合顺序的排列" << endl;return 1;
}

http://www.dtcms.com/a/288898.html

相关文章:

  • 交通出行大前端与 AI 融合:智能导航与出行预测
  • 详解Mysql Order by排序底层原理
  • 黑马教程Webday6
  • 【Docker基础】Docker-compose常用命令实践(二):状态与日志查看
  • kafka生产端和消费端的僵尸实例以及解决办法
  • Vue开发前端报错:‘vue-cli-service‘ 不是内部或外部命令解决方案
  • 【Java学习|黑马笔记|Day18】Stream流|获取、中间方法、终结方法、收集方法
  • 【Linux】2. Linux下的C/C++开发环境
  • 【UE5医学影像可视化】读取dicom数据生成2D纹理并显示
  • pytest-log
  • 嵌入式Linux:获取线程ID
  • 数组算法之【合并两个有序数组】
  • 137. Java 泛型 - 泛型与通配符:子类型化关系
  • 【Linux】权限详解 权限本质、权限属性、su、sudo提权、chmod\chown\chgrp、文件类别
  • RxSwift-事件属性
  • Vuex 核心知识详解:Vue2Vue3 状态管理指南
  • Servlet快速入门
  • Docker在NAS部署MoonTV+OrionTV
  • 44.sentinel授权规则
  • tidyverse-数据读入
  • 基于智慧经营系统的学校住宿登记报表分析与应用探究-毕业论文—仙盟创梦IDE
  • 如何防止任务长期处于“等待”状态
  • Python基础和高级【抽取复习】
  • 基于单片机的自动条幅悬挂机
  • Leetcode 06 java
  • SpringBoot的配置文件
  • 【micro:bit】从入门到放弃(四):高级指令:函数、数组、文本、高级LED、引脚配置
  • UE蒙太奇和动画序列有什么区别?
  • 早期SD模型控制生成方法
  • Dev-C++——winAPI贪吃蛇小游戏