Wyznaczenie dwóch najmniejszych wartości w tablicy

0

Musze napisac program wyznaczajacy 2 najmniejsze wartosci z tablicy 10 elementowej oraz jej indeksy, jak na razie udalo mi sie stworzyc cos takiego, ale nie mam pojecia jak dalej sie za to zabrac

srand(time(NULL));
			for (int i = 0; i < a; i++)
			{
				tab1[i] = rand() % 50;
				cout << tab1[i] << endl;
			}
			int minimum = tab1[0];
			int minimum2 = tab1[1];
			for (int i = 2; i < a; i++)
			{
				if (tab1[i] < minimum)
				{
					if (minimum < minimum2)
					{
						minimum2 = tab1[i];
					}
					minimum = tab1[i];
				}
			}
			cout << "Wartosc najmniejsza to: " << minimum <<" oraz "<<minimum2<<endl;
			system("pause"); 
0

Przykład we Free Pascalu:

type
  TUInt8Array = array [0 .. 9] of UInt8;
const
  NUMBERS_ARR: TUInt8Array = (4, 8, 1, 6, 2, 0, 3, 7, 5, 9);
var
  int1stMin: UInt8 = High(UInt8);
  int2ndMin: UInt8 = High(UInt8);
  intNumValue: UInt8;
begin
  for intNumValue in NUMBERS_ARR do
    if intNumValue < int1stMin then
    begin
      int2ndMin := int1stMin;
      int1stMin := intNumValue;
    end
    else
      if intNumValue < int2ndMin then
        int2ndMin := intNumValue;

  Write('1st: ', int1stMin, ', 2nd: ', int2ndMin);  // wyświetli "1st: 0, 2nd: 1"
  ReadLn;
end.
  • Same wartości - http://ideone.com/dN6A2l
  • Z zapamiętaniem indeksów - http://ideone.com/MuVCeP
    ____Ogólna zasada - nadanie zmiennym minimum i minimum2 jak największych wartości; Następnie w pętli sprawdzasz, czy liczba z tablicy jest mniejsza od minimum i jeśli tak - przepisujesz wartość minimum do minimum2, a do minimum wpisujesz wartość z tablicy; W przeciwnym razie sprawdzasz czy wartość z tablicy jest mniejsza od wartości ze zmiennej minimum2 i jeśli tak - wpisujesz ją do zmiennej;

Na koniec wystarczy wyświetlić i to wszystko.

1 użytkowników online, w tym zalogowanych: 0, gości: 1