du2 - 2
This commit is contained in:
parent
497be19a0e
commit
a19ffdbaf2
@ -11,19 +11,59 @@ struct pizza {
|
|||||||
float price;
|
float price;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//funkcia na nacitanie jednej polozky
|
||||||
int read_pizza(struct pizza *item) {
|
int read_pizza(struct pizza *item) {
|
||||||
char line1[LINESIZE];
|
char line1[LINESIZE];
|
||||||
char line2[LINESIZE];
|
char line2[LINESIZE];
|
||||||
|
|
||||||
|
//nazov
|
||||||
if (!fgets(line1, LINESIZE, stdin)) return 0;
|
if (!fgets(line1, LINESIZE, stdin)) return 0;
|
||||||
line1[strcspn(line1, "\n")] = 0;
|
line1[strcspn(line1, "\n")] = 0;
|
||||||
|
if (strlen(line1) == 0) return 0;
|
||||||
|
|
||||||
|
//cena
|
||||||
|
if (!fgets(line2, LINESIZE, stdin)) return 0;
|
||||||
|
line2[strcspn(line2, "\n")] = 0;
|
||||||
|
|
||||||
float value;
|
float value;
|
||||||
if (sscanf(line2, "%f", &value) != 1
|
if (sscanf(line2, "%f", &value) != 1 || value == 0.0f) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
strcpy(item->name, line1);
|
||||||
|
item->prize = value;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
//porovnanie pre qsort
|
||||||
|
int compare_pizza(const void *a, const void *b){
|
||||||
|
const struct pizza *pa = (const struct pizza *)a;
|
||||||
|
const struct pizza *pb = (const struct pizza *)b;
|
||||||
|
|
||||||
|
if (pa->prize < pb->prize) return -1;
|
||||||
|
if (pa->prize > pb->prize) return 1;
|
||||||
|
|
||||||
|
return strcmp(pa->name, pb->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
|
struct pizza list[MAXITEMS];
|
||||||
|
int count = 0;
|
||||||
|
|
||||||
|
//nacitanie listka
|
||||||
|
while (count < MAXITEMS && read_pizza(&list[count])){
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
//triedenie
|
||||||
|
qsort(list, count, sizeof(struct pizza), compare_pizza);
|
||||||
|
|
||||||
|
//vypis listka
|
||||||
|
for (int i = 0; i < count; i++){
|
||||||
|
printf("%s\n", list[i].name);
|
||||||
|
printf("%s\n", list[i].prize);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user