summaryrefslogtreecommitdiff
path: root/cpp/compito.cpp
blob: 205dc5919574d53359a39317ca42ab55a8dd3a88 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include <iostream>
#define N 5

using namespace std;

struct puntiVendita {
	string citta;
	float entrate;
	float uscite;
};

struct puntiVendita pV[N];
bool utili(struct puntiVendita p);
void carica();
void ord();
void visualizza();

int main()
{
	carica();
	
	for(auto i : pV) {
		if(!utili(i))
			cout << "Attenzione -> " << i.citta << endl;
	}
	
	ord();
	visualizza();
	
	return 0;
}

bool utili(struct puntiVendita p)
{
	return ((p.uscite > p.entrate) ? false : true);
}

void carica()
{
	pV[0].citta = "Catania";
	pV[0].entrate = 380;
	pV[0].uscite = 245;
	pV[1].citta = "Ragusa";
	pV[1].entrate = 231;
	pV[1].uscite = 175;
	pV[2].citta = "Siracusa";
	pV[2].entrate = 214;
	pV[2].uscite = 227;
	pV[3].citta = "Messina";
	pV[3].entrate = 294;
	pV[3].uscite = 189;
	pV[4].citta = "Enna";
	pV[4].entrate = 145;
	pV[4].uscite = 175;
}

void ord()
{
	struct puntiVendita t;
	bool s;
	int last = N-1;
	
	do {
		s = false;
		
		for(int i = 0; i < last; i++) {
			if(pV[i].entrate > pV[i+1].entrate) {
				t.citta = pV[i].citta;
				t.entrate = pV[i].entrate;
				t.uscite = pV[i].uscite;
				
				pV[i].citta = pV[i+1].citta;
				pV[i].entrate = pV[i+1].entrate;
				pV[i].uscite = pV[i+1].uscite;
				
				
				pV[i+1].citta = t.citta;
				pV[i+1].entrate = t.entrate;
				pV[i+1].uscite = t.uscite;
				
				s = true;
			}
		}
		
		last--;
	} while(s);
}

void visualizza()
{
	for(auto i : pV) {
		cout << i.entrate << endl;
	}
}