• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Struktury. sortowanie bąbelkowe

Object Storage Arubacloud
0 głosów
383 wizyt
pytanie zadane 1 stycznia 2019 w C i C++ przez Teslum_369 Gaduła (4,190 p.)
zamknięte 1 stycznia 2019 przez criss

Witam, 

Jestem początkującym programistą i piszę programik o pracownikach. Program pyta o imię, nazwisko, pesel, wynagrodzenie (miesięczne) i oblicza wynagrodzenie roczne. Następnie wykonywany jest system("CLS") i pokazuje takie ala podsumowanie wszystkich pracowników. Chciałbym dodać również kto najwięcej zarabia. Potrafię jedynie za pomocą sortowania bąbelkowego wyznaczyć kwotę, jaką zarabia ów pracownik. Jak można wraz z kwotą ustalić imię i nazwisko najwięcej zarabiającego pracownika?

Podkreślę, iż podobne pytanie już padło, lecz nie została udzielona odpowiedź.

Przedstawiam mój kod, miejsce w którym mam problem wyznaczyłem poprzez "???" wyświetlając na ekran.:

#include <iostream>
#include <string>
using namespace std;

struct pracownicy
{
	struct dane_os
	{
		string imie;
		string nazwisko;
	};
	
	dane_os dane;
	
	int pesel;
	int wynagrodzenie;
	int roczne;
};
pracownicy drukuj(pracownicy worker[], int n);
pracownicy wpis(pracownicy worker[] ,int n);

int main()
{
	int ilosc;
	cout << "Podaj ilosc pracownikow firmy: ";
	cin >> ilosc;
	
	pracownicy firma[ilosc];
	wpis(firma, ilosc);
	
	cout << endl; 
	system("PAUSE");
	
	cin.ignore();
	getchar();
	return 0;
}


pracownicy drukuj(pracownicy worker[], int n)
{

	pracownicy program;
	system("CLS");

	cout << "Pracownicy firmy: \n\n";
	

	
	for(int i=0; i<n; i++)
	{
		cout << "***********************\n";
		cout << "*\n";
		cout << "* Imie: " << worker[i].dane.imie << endl;
		cout << "* Nazwisko: " << worker[i].dane.nazwisko << endl;
		cout << "* Pesel: " << worker[i].pesel << endl;
		cout << "* Wynagrodzenie: " << worker[i].wynagrodzenie << endl;
		cout << "* Roczny zarobek: " << worker[i].wynagrodzenie*12 << endl;
		cout << "*\n";
	}
	cout << "***********************\n";

	for(int c=0; c<n-1; c++)
	{
		for(int k=c+1; k<n; k++)
		{
			int bufor;
			if(worker[c].wynagrodzenie < worker[k].wynagrodzenie)
			{
				
				bufor=worker[c].wynagrodzenie;
				worker[c].wynagrodzenie = worker[k].wynagrodzenie;
				worker[k].wynagrodzenie = bufor;
			}
		}
	}
	int highest = worker[0].wynagrodzenie*12;
	
	cout << "\nNajwiecej zarabiajacy pracownik: " << "(???)" << ", " << highest << endl << endl;
	return program;
}



pracownicy wpis(pracownicy worker[] ,int n)
{
	

	pracownicy program;
	worker[n];
	
	for(int i=0; i < n; i++)
	{
		cout << "\nImie: ";
		cin.ignore();
		getline(cin, worker[i].dane.imie);
		
		cout << "Nazwisko: ";
		getline(cin, worker[i].dane.nazwisko);
		
		cout << "Pesel: ";
		cin >> worker[i].pesel;
		
		cout << "Wynagrodzenie: ";
		cin >> worker[i].wynagrodzenie;
		
		cout << "Roczny zarobek: " << worker[i].wynagrodzenie*12 << endl << endl;
	}	
	cout << endl << endl;
	system("PAUSE");
	drukuj(worker, n);
	return program;
}

 

Z góry dziękuję i pozdrawiam wszystkich forumowiczów!

komentarz zamknięcia: Rozwiazane
1
komentarz 1 stycznia 2019 przez DragonCoder Nałogowiec (36,500 p.)
Skoro wyznaczyles najwyzsza kwote, to znaczy ze wyznaczyles dany elemnt tablicy [n], wiec zapisz sobie jaka to byla wartosc i wtedy pobierz wszytskie dane jakie chcesz, ktore znajduja sie w tym elemencie, np elemencie 4. imie [4], nazwisko [4]
komentarz 1 stycznia 2019 przez Teslum_369 Gaduła (4,190 p.)
Dziękuję bardzo! Świetne rozwiązanie!
komentarz 1 stycznia 2019 przez DragonCoder Nałogowiec (36,500 p.)
Nie wiem, czy to zadziala, moze sa inne mozliwosci, lub juz gotowe funkcje, a nie przejscie za pomoca petli. Ale wtedy musisz poczekac na kogos bardziej doswiadczonego
komentarz 1 stycznia 2019 przez Teslum_369 Gaduła (4,190 p.)
Ogólnie, nie potrafiłem znaleźć odpowiedzi, ponieważ użyłem sortowania bąbelkowego, gdzie kolejność całej struktury już była dla mnie nie znana i właśnie to sortowanie przysłoniło mi rozwiązanie. Tak, twoja pomoc działa. Na prawdę bardzo dziękuję!

Podobne pytania

0 głosów
2 odpowiedzi 744 wizyt
pytanie zadane 24 czerwca 2018 w C i C++ przez siemasiema123.96 Początkujący (350 p.)
0 głosów
1 odpowiedź 770 wizyt
+1 głos
1 odpowiedź 470 wizyt
pytanie zadane 13 grudnia 2020 w C i C++ przez XYZ!12 Nowicjusz (130 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...