我必须写一个程序,循环读取一个数字列表,直到用户给出数字 0。数字 0 不包括在计算中,只是结束数据的信号。下一个程序从数字字符串中写入最小和最大元素,以及输入的次数。例如 (2,3,1,5,4,2,3,1,5,1)
最少 1 次 3 次
最多 5 次 2 次p>
我对 number 有问题,因为当我有 max 并输入较低的数字时,我的 lmax 会越来越高。第二个问题是程序不响应“0”。我做错了什么?
int number;
int min = 0;
int max = 0;
int lmin = 1;
int lmax = 1;
do {
cout << "Number: ";
cin >> number;
if (min == 0 && max == 0) {
min = number;
max = number;
}
else if (number > max && number !=0) {
max = number;
lmax = 1;
}
else if (number < min && number != 0) {
min = number;
lmin = 1;
}
else if (number = max) {
lmax++;
}
else if (number = min) {
lmin++;
}
} while (number != 0);
cout << "Min " << min << " " << lmin << " times" <<endl;
cout << "Max " << max << " " << lmax << " times" << endl;
最佳答案
您在部分解决方案中使用 =
而不是 ==
。尝试改变
else if (number = max) {
类似于
else if (number == max) {
关于c++ - 在数字列表中搜索最小值和最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46983861/