循环遍历可以找出最小值,最小的两个怎么查找呢,有没有什么好方法
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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
- ¥20 Java-Oj-桌布的计算
- ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
- ¥20 有人知道这种图怎么画吗?
- ¥15 pyqt6如何引用qrc文件加载里面的的资源
- ¥15 安卓JNI项目使用lua上的问题
- ¥20 RL+GNN解决人员排班问题时梯度消失
- ¥60 要数控稳压电源测试数据
- ¥15 能帮我写下这个编程吗
- ¥15 ikuai客户端l2tp协议链接报终止15信号和无法将p.p.p6转换为我的l2tp线路