Witam
Wczytuje sobie do tablicy dwuwymiarowej [100][3] liczby w ten sposób:
for(i=0;i<3;i++)
for(j=0;j<3;j++)
odczyt>>tab[i][j];
są to kolejno w wierszu bok prostokąta, bok2 prostokąta, pole prostokąta
Potrzebuje teraz znaleźć wszystkie prostokaty o najmniejszym polu. Następnie wynik wypisać w postaci bok prostokąta, bok2 prostokąta, pole prostokąta. Każdy w osobnych wierszach na końcu podać liczbę tych prostokątów o najmniejszym polu.
Próbowałem posortować kolumnę z polami ale wtedy tablica się miesza i nie można znaleźć boków.
Ma ktoś jakiś pomysł jak to zrobić?
próbna matura ?
nie trzeba nawet sortować a raz wystarczy przejechać po tablicy.
na próbnej zrobiłem to mało optymalnie (lecz Ci podam co wymyśliłem bo to jest aż śmieszne )
lecisz po tabicy uznając pole prostokąta 0 za najmniejsze i wypisujesz je do pola.
dodatkowo tworzysz cos co będzie za licznik ile takich jest.
lecisz po nastepnej jesli
jest mniejsz to -> czyscisz plik wpisujesz nowe wartosci, licznik ustawiasz na 1;
jesli wieksze omijasz
jesli takie samo -> dopisujesz do pliku licznik ++;
po zakonczeniu wypisujesz w nowej lini licznik;p
P.s lepiej użyj tablicy dynamicznej. zlicz ile masz wierwszy potem ustaw wielkosć tablicy na taką co Ci potrzeba.
pamiętaj że robisz program który ma działać ZAWSZE. teraz gdyby było np 3000 wpisów uzyskasz coś niewiarygodnego.
p.s2 sortowanie bąbelkowe bo raczej to byłoby użyte przy 1000 danych moze już długo działać dlatego moze moja wersja będzie nawet szybsza ( tyle ze plik czesto otwieramy z parametrem kasowanai)
Użytkownik mastah7991 edytował ten post 03.03.2016 21:50