-
Notifications
You must be signed in to change notification settings - Fork 0
/
TicketSales.c
112 lines (101 loc) · 2.96 KB
/
TicketSales.c
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
// C Code
// This code will calculate the value of ticket sales for concerts.
// Developer: Joseph Julian
#include <stdio.h>
#define MAXN 100 // max characters in a group/concert name
#define MAXG 7 // max concerts/groups
#define MAXC 3 // max categories
char group[MAXG][MAXN];
int fans[MAXG][MAXC];
float prices[MAXC];
float sales[MAXG];
int count = 0;
void printWelcome() {
printf("Welcome!\n");
printf("This C code will compute the values of the sales ticket sales for concerts.\n");
printf("Developer: Joseph Julian\n");
printf("\n");
}
void printArray() {
printf("%15s%5s%5s%5s%10s\n",
"Concert", "s1", "s2", "s3", "Sales");
for (int i = 0; i < count; i++) {
printf("%15s", group[i]);
for (int j = 0; j < MAXC; j++) {
printf("%5d", fans[i][j]);
} // end for each category
printf("%10.2f\n", sales[i]);
} // end for each group
} // end function printArray
void computeSales() {
for (int i = 0; i < count; i++) {
sales[i] = 0;
for (int j = 0; j < MAXC; j++) {
sales[i] += prices[j] * fans[i][j];
} // end for each category
} // end for each group
} // end function computeSales
void switchRows(int m, int n) {
char tc;
int ti;
float v;
// printf ("Switching %d with %d\n", m, n);
for (int i = 0; i < MAXN; i++) {
tc = group[m][i];
group[m][i] = group[n][i];
group[n][i] = tc;
} // end for each character in a group name
for (int i = 0; i < MAXC; i++) {
ti = fans[m][i];
fans[m][i] = fans[n][i];
fans[n][i] = ti;
} // end for each fan category
v = sales[m];
sales[m] = sales[n];
sales[n] = v;
} // end switch
int findMinSales(int m) {
float min = sales[m];
int target = m;
for (int i = m + 1; i < count; i++)
if (sales[i] < min) {
min = sales[i];
target = i;
} // end new max found
return target;
} // end function findMinSales
void sortBySales() {
int target;
for (int i = 0; i < count; i++) {
target = findMinSales(i);
if (target > i)
switchRows(i, target);
} // for each concert
} // end function sortBySales
void getData() {
// for (int i = 0; i < MAXG; i++) sales [i] = 0;
printf("Enter ticket prices in each of %d categories: ", MAXC);
for (int i = 0; i < MAXC; i++)
scanf("%f", &prices[i]);
printf("-- Enter group and fans in %d categories\n", MAXC);
printf(" . to finish entries:\n");
for (int i = 0; i < MAXG; i++) {
scanf("%s", group[i]);
if (group[i][0] == '.')
break;
count++;
for (int j = 0; j < MAXC; j++)
scanf("%d", &fans[i][j]);
} // end for each group
} // end function getData
int main(void) {
printWelcome();
getData();
computeSales();
printArray();
printf("\n --- Sorted ---\n");
sortBySales();
printArray();
printf("... bye ...\n");
return 0;
}