最小值输出为3,明显错误,应该为1,但不知代码中错在哪,希望各位大神帮忙看一下
#include<iostream>
using namespace std;
#include<stdlib.h>
namespace A
{
int getMaxOrMin(int *a, int count, bool ifMax)
{
int temp = a[0];
int i, j;
if (ifMax)
{
for (i = 1; i < count; i++)
{
for (j = 0; j < count - i; j++)
{
if (a[j] < a[j + 1])
{
temp = a[j + 1];
a[j + 1] = a[j];
a[j] = temp;
}
}
}
cout << temp << "为最大值" << endl;
}
if (!ifMax)
{
for (i = 1; i < count; i++)
{
for (j = 0; j < count - i; j++)
{
if (a[j]>a[j + 1])
{
temp = a[j + 1];
a[j + 1] = a[j];
a[j] = temp;
}
}
}
cout << temp << "为最小值" << endl;
}
for (i = 0; i < count; i++)
{
cout << a[i] << endl;
}
return temp;
}
}
int main()
{
int arr[10] = { 2, 5, 7, 8, 4, 1, 6, 3, 9, 10 };
bool ifMax = false;
cin >> ifMax;
A::getMaxOrMin(arr, 10, ifMax);
system("pause");
return 0;
}