[ create a new paste ] login | about

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

C++, pasted on Nov 12:
#include <stdio.h>
#include <stdlib.h>

#define N 10

int main(int argc, char* argv[])
{
	int A[N] = { 0 };

	for (int k = 0; k < N; k++)
	{
		A[k] = rand() % 100 + 1;
		printf("%d ",A[k]);
	}

	printf("\n");

	int count = 3;
	int B[N] = { 0 }, n = 0;
	while (--count >= 0)
	{
		int max = 0;
		for (int i = 0; i < N; i++)
			if (A[i] > A[max])
			{
				bool b = false;
				for (int r = n-1; r >= 0 && !b; r--)
					if (B[r] == i) b = true;

				if (!b) max = i;
			}

		B[n++] = max;
	}

	printf("3rd maximum A[%d] = %d\n",B[n-1], A[B[n-1]]);

	for (int t = 0; t < N; t++)
		if (A[t] > A[B[n-1]]) A[t] = A[B[n-1]];

	for (int z2 = 0; z2 < N; z2++)
		printf("%d ",A[z2]);

	return 0;
}


Output:
1
2
3
84 87 78 16 94 36 87 93 50 22 
3rd maximum A[1] = 87
84 87 78 16 87 36 87 87 50 22 


Create a new paste based on this one


Comments: