循环遍历可以找出最小值,最小的两个怎么查找呢,有没有什么好方法
3条回答 默认 最新
- 技术专家团-小桥流水 2022-04-06 22:42关注
仍然是循环遍历,只是记录两个最小的就好了,找到比最小值小的,就替代最小值,然后跟第二小的比较,比第二小的,就替代第二小的。或者先跟第二小的比较也可以。参考如下:
#include <iostream> using namespace std; int main() { int n,m=0; int min1 = 1,min2 = 1;//min1是最小值,min2是次小值 int flag = 0; cout << "请输入一组数"; while(1) { cin >> n; if(n < 0) //统计负数个数,不能<=0 { m++; if(flag == 0) { min1 = n; flag = 1; }else if (flag ==1) { flag = 2; if(n < min1) { min2 = min1; min1 = n; }else min2 = n; } else { if(n < min1) { min2 = min1; min1 = n; }else if(n>min1 && n<min2) { min2 = n; } } }else break; } cout << "这些数中负数的个数为:" << m<<endl; cout << "最小的两个数为:" << min1 << "," << min2 << endl; return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
- ¥15 CSAPPattacklab
- ¥15 一直显示正在等待HID—ISP
- ¥15 Python turtle 画图
- ¥15 关于大棚监测的pcb板设计
- ¥15 stm32开发clion时遇到的编译问题
- ¥15 lna设计 源简并电感型共源放大器
- ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
- ¥15 Vue3地图和异步函数使用
- ¥15 C++ yoloV5改写遇到的问题