#include <stdio.h>
#define N 10
void find2min(int* pn, int& index)
{
int B[N] = { 0 };
int count = 2, n = 0;
while (--count >= 0)
{
int min = 0;
for (int i = 0; i < N; i++)
if (pn[i] < pn[min])
{
bool found = false;
for (int k = n-1; k >= 0 && !found; k--)
found = (B[k] == i) ? 1 : 0;
if (found == false)
min = i;
}
if (min >= 0) B[n++] = min;
}
if (index >= 0) index = B[1];
}
void find2max(int* pn, int& index)
{
int B[N] = { 0 };
int count = 2, n = 0;
while (--count >= 0)
{
int max = 0;
for (int i = 0; i < N; i++)
if (pn[i] > pn[max] || max == 0)
{
bool found = false;
for (int k = n-1; k >= 0 && !found; k--)
found = (B[k] == i) ? 1 : 0;
if (found == false)
max = i;
}
if (max >= 0) B[n++] = max;
}
if (index >= 0) index = B[1];
}
int sum2mxn(int* pn, int min_i, int max_i)
{
int l = 0, h = 0;
if (min_i > max_i)
{
l = max_i;
h = min_i;
}
else if (min_i < max_i)
{
l = min_i;
h = max_i;
}
else if (min_i == max_i)
return pn[min_i];
int sum = 0;
for (int i = l+1; i < h; i++)
{
printf("%d ",pn[i]);
sum+=pn[i];
}
printf("\n");
return sum;
}
int main(int argc, char* argv[])
{
int A[N] = { 7, 5, 8, 4, 9, 1, 3, 6, 4, 7 };
int min_i = 0, max_i = 0;
find2min(A, min_i);
find2max(A, max_i);
for (int i = 0; i < N; i++)
printf("%d ",A[i]);
printf("\n");
printf("sum = %d\n", sum2mxn(A, min_i, max_i));
return 0;
}