const int size = 3;
int p = 2;
int k = 3;
int intArray[size];
for (int i = 0; i < size; i++)
cin >> intArray[i];
int min = intArray[p];
if (k > 0)
{
if (intArray[p-1]< intArray[p])
{
min = intArray[p - 1];
}
else
{
min = intArray[p];
}
p--;
k--;
}
cout << "Minimum int value is " << min << endl;
如果输入1 2 3
会跳出最小值是2的错误答案
答案应该是1
if (k > 0)
改为
while(k>0)
你得循环判断啊。if只会判断到第二个就结束了啊,当然2是最小值
另外,k和p的初始值应该一样,否则你就多循环了一次
#include <iostream>
using namespace std;
int main()
{
const int size = 3;
int p = 2;
int k = 2;
int intArray[size];
for (int i = 0; i < size; i++)
cin >> intArray[i];
int min = intArray[p];
while (k > 0)
{
if (intArray[p-1]< intArray[p])
{
min = intArray[p - 1];
}
else
{
min = intArray[p];
}
p--;
k--;
}
cout << "Minimum int value is " << min << endl;
}