[ create a new paste ] login | about

Link: http://codepad.org/sHzeWQoH    [ raw code | output | fork ]

C++, pasted on Dec 7:
#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;
}


Output:
1
2
3
7 5 8 4 9 1 3 6 4 7 
4 9 1 
sum = 14


Create a new paste based on this one


Comments: