Witam mam problem mianowicie program spelnia swoje zadanie. Sortuje wszystko tak jak powinno ale magisterek czepia sie jak zwykle wszystkiego wiec musze zmodyfikowac zeby zaliczyc laborki.
Zamieszczam kod do ktorego doszedlem
#include <iostream>
#include<iomanip>
using namespace std;
struct vote_result
{
char miasto[20];
int status;
int ilosc_glosow;
float glosy_TB;
float glosy_ZB;
};
void czytania (int n, vote_result *t)
{
for (int i=0;i<n;i++)
{
cout << "\nPodaj nazwe miasta. " ;
cin >> t[i].miasto;
cout << "Podaj wartosc statusu miasta. " ;
cin >> t[i].status;
cout << "Podaj ilosc waznych glosow. " ;
cin >> t[i].ilosc_glosow;
cout << "Podaj ilosc glosow oddanych na partie Twoj Bajt: " ;
cin >> t[i].glosy_TB;
cout << "Podaj ilosc glosow oddanych na pratie Zwiazek Bitowy: " ;
cin >> t[i].glosy_ZB;
}
}
void sort_GBKW(int n, vote_result *t)
{
int i, j, k;
for(i=0; i<n; i++) {
k=i;
for(j=i+1; j<n; j++)
if(((t[j].status)<(t[k].status))||(((t[j].status)==(t[k].status))&&((t[j].ilosc_glosow)<(t[k].ilosc_glosow))))
k=j;
swap(t[k], t[i]);
}
}
void sort_TB(int n, vote_result *t)
{
int k;
for( int i = 0; i <n; i++ )
{
k = i;
for( int j = i + 1; j < n; j++ )
if( t[ j ].glosy_TB < t[ k ].glosy_TB )
k = j;
swap( t[ k ], t[ i ] );
}
}void sort_ZB(int n, vote_result *t)
{
int k;
for( int i = 0; i <n; i++ )
{
k = i;
for( int j = i + 1; j < n; j++ )
if( t[ j ].glosy_TB < t[ k ].glosy_TB )
k = j;
swap( t[ k ], t[ i ] );
}
}
void wydruk (int n, vote_result *t)
{
for(int i=0;i<n;i++)
{
cout << "\nMiasto: " << t[i].miasto << "\n";
cout << "Status: " << t[i].status << "\n";
cout << "Wszystkie głosy: " << t[i].ilosc_glosow << "\n";
t[i].glosy_TB=(t[i].glosy_TB/t[i].ilosc_glosow)*100;
cout << "Glosy oddane na partie Twoj Bajt: " <<setprecision(2+1)<< t[i].glosy_TB << " %\n";
t[i].glosy_ZB=(t[i].glosy_ZB/t[i].ilosc_glosow)*100;
cout << "Glosy oddane na partie Zwiazek Bitowy: " <<setprecision(2+1)<< t[i].glosy_ZB << " %\n\n";
}
}
main()
{
int n;
cout << "Podaj n."<<endl;
cin >> n;
cout << "\nWartosci statusu miasta:\nMNPP: 1;\nM: 2;\nMW: 3;\nW: 4;\n";
vote_result *t;
t=new vote_result[n];
czytania(n,t);
sort_GBKW(n,t);
sort_TB(n,t);
sort_ZB(n,t);
cout<<"Sortowanie wg GBKW: \n";
wydruk(n,t);
cout<<"Sortowanie wg TB \n";
wydruk(n,t);
cout<<"Sortowanie wg ZB \n";
wydruk(n,t);
return 0;
}
a wiec tak sort_GKBW, sort_TB, sort _ZB musze byc w jednek funkcji sortowania. Oraz mamy podawac status miasta w formie char/string a nie tak jak tutaj dalem ze 1,2,3,4. Podam jeszcze tresc zadania zeby bylo jasne.
System demokratyczny w Bajtocji opiera sie na dwóch partiach: „Twój
Bajt” i „Zwiazek Bitowy”. Mieszkancy głosuja w okregach jednomandatowych
(gminach) na członka jednej z dwóch partii albo nie uczestnicza w wyborach (oddanie
pustej kartki lub skreslenie dwóch kandydatów traktowane jest jako brak
uczestnictwa). Kazda gmina ma status miasta na prawach powiatu (MNPP),
gminy miejskiej (M), miejsko-wiejskiej (MW) lub wiejskiej (W). Główna Bajtocka
Komisja Wyborcza wymaga, aby wyniki były posortowane w nastepujacy sposób:
po pierwsze wyniki sa uporzadkowane wg status gminy w kolejnosci MNPP
– M – MW – W
wsród gmin o tym samym statusie wyniki maja byc uporzadkowane wg liczby
osób, które zagłosowały na jedna z dwóch partii (wg sumy oddanych głosów
waznych)
Napisz program, który umozliwia wykonania trzech operacji
- wypisywanie wyników zgodnie z wymogami GBKW
- wypisywanie wyników posortowanych malejaco wg wyników partii „Twój
Bajt” - wypisywanie wyników posortowanych malejaco wg wyników partii „Zwiazek
Bitowy”.