【发布时间】:2020-02-05 17:15:41
【问题描述】:
我必须创建一个使用 for 循环或 while 循环和数组的函数,以显示一组数字中的最大数字,但我遇到了标题中的问题。
当我运行此代码时,它不允许用户在数组中输入他想要的任意数量的元素,并且当用户想要通过输入 g 之类的字母来停止时它不会停止。它也不会在用户希望在数组中输入的内容的末尾输出最大的数字。
我的代码到底有什么问题?
#include <iostream>
using namespace std;
void printarray(int array[], int size)
{
for (int i = 0; i < size; i++)
{
cout << array[i] << endl;
}
return;
}
int main()
{
const int SIZE = 2000;
int count = 0;
int userinput[SIZE];
int largest = 0;
for (int i = 0; i < SIZE; i++)
{
if (cin >> userinput[i])
{
count++;
}
else
{
break;
}
while (count < userinput[i])
{
if (largest < userinput[i])
{
largest = userinput[i];
}
count++;
}}
printarray(userinput, count);
cin.clear();
cin.ignore();
return 0;
}
【问题讨论】:
-
你希望
while (count < userinput[i])做什么? -
让您的生活更轻松,忘记 C 样式数组的存在并使用更好 C++ 替代方案:en.cppreference.com/w/cpp/container/array、en.cppreference.com/w/cpp/container/vector
标签: c++ algorithm loops for-loop max