• 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

VPS Starter Arubacloud
0 głosów
364 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 694 wizyt
pytanie zadane 24 czerwca 2018 w C i C++ przez siemasiema123.96 Początkujący (350 p.)
0 głosów
1 odpowiedź 766 wizyt
+1 głos
1 odpowiedź 437 wizyt
pytanie zadane 13 grudnia 2020 w C i C++ przez XYZ!12 Nowicjusz (130 p.)

92,452 zapytań

141,262 odpowiedzi

319,085 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...