比较数列大小时无法读取第一个数列元素

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; 
}