C++ 获取键盘输入整数的最小值:高效算法实现
以下是一个示例代码,展示如何从键盘输入若干个整数,并返回其中的最小值,输入 '#' 字符作为结束标记:
#include <iostream>
using namespace std;
int minInput() {
int minNum, num; // minNum记录当前最小值,num记录输入的数
bool firstInput = true; // 是否是第一次输入标记
char ch; // 记录输入的字符
while (true) {
cin >> ch;
if (ch == '#') { // 输入结束,返回最小值
return minNum;
}
else if (ch >= '0' && ch <= '9') { // 输入的是数字,进行累加
num = ch - '0'; // 将字符转为数字
while (true) {
cin >> ch;
if (ch >= '0' && ch <= '9') {
num = num * 10 + (ch - '0');
}
else if (ch == '#') {
return minNum;
}
else {
break;
}
}
if (firstInput) { // 第一次输入,将num赋值给minNum
minNum = num;
firstInput = false;
}
else if (num < minNum) { // num小于minNum,更新minNum
minNum = num;
}
}
}
}
int main() {
cout << "请输入若干个整数,以'#'结束:" << endl;
int minNum = minInput();
cout << "输入的最小值为:" << minNum << endl;
return 0;
}
该函数通过循环从键盘输入字符,如果输入的是数字,则将其累加起来,如果输入的是 '#',则返回当前的最小值。在输入数字时,需要注意可能会有多位数字,需要将其累加起来,直到遇到非数字字符为止。在输入第一个数字时,将其赋值给 minNum 作为初始最小值,后面输入的数字如果小于 minNum,则更新 minNum。
原文地址: https://www.cveoy.top/t/topic/oJNR 著作权归作者所有。请勿转载和采集!