Initializacia
This commit is contained in:
parent
75c55a1bb9
commit
e09f5c99e3
@ -1,55 +1,61 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
|
||||
#define LINE_SIZE 100
|
||||
#define LIST_SIZE 100
|
||||
#define MAX_NAME_LENGTH 100
|
||||
#define MAX_ITEMS 100
|
||||
|
||||
struct pizza{
|
||||
char name[LINE_SIZE];
|
||||
typedef struct {
|
||||
char name[MAX_NAME_LENGTH];
|
||||
float price;
|
||||
}
|
||||
} Pizza;
|
||||
|
||||
int read_pizza_list(struct pizza* list){
|
||||
char buffer[LINE_SIZE]
|
||||
while(fgets(buffer, LINE_SIZT, stdin) == 0){
|
||||
int compare(const void *a, const void *b) {
|
||||
Pizza *pizzaA = (Pizza *)a;
|
||||
Pizza *pizzaB = (Pizza *)b;
|
||||
|
||||
if (pizzaA->price != pizzaB->price) {
|
||||
return (pizzaA->price > pizzaB->price) - (pizzaA->price < pizzaB->price);
|
||||
}
|
||||
return strcasecmp(pizzaA->name, pizzaB->name);
|
||||
}
|
||||
|
||||
int read_item(struct pizza* list) {
|
||||
int read_pizza_list(Pizza *menu) {
|
||||
int count = 0;
|
||||
char input[MAX_NAME_LENGTH];
|
||||
|
||||
}
|
||||
// Nacitame pizza
|
||||
while (count < MAX_ITEMS && fgets(input, sizeof(input), stdin)) {
|
||||
input[strcspn(input, "\n")] = 0; // Odstran znak noveho riadku
|
||||
|
||||
|
||||
int main(){
|
||||
struct pizza vacerajsia = {.name = "Vajcova pizza", .price = 0.2};
|
||||
printf("Pizza: %s, cena: %f/n", vacerajsia.name, vacerajsia.price -0.1);
|
||||
|
||||
// Prechadzajte vsetky miesta jedalneho listka
|
||||
int counter = 0;
|
||||
for (int i=0; i< LIST_SIZE; i++){
|
||||
struct pizza item;
|
||||
memset(&item,0,sizeof(struct pizza));
|
||||
// Nacitajte polozku do pomocnej premennej
|
||||
// Na nacitanie pouzite vlastny kod
|
||||
int r = read_item(&item);
|
||||
if (r){
|
||||
// Ak sa nacitanie podarilo, skopirujte polozku do pola
|
||||
memcpy(&listok[i],&item,sizeof(struct pizza));
|
||||
// Spocitame uspesne nacitane polozky
|
||||
counter += 1;
|
||||
}
|
||||
else{
|
||||
// Ak sa nacitanie nepodarilo, nasli sme poslednu polozku
|
||||
// Prerusim nacitanie
|
||||
// Nacitame cenu pizze
|
||||
char price_str[10];
|
||||
if (fgets(price_str, sizeof(price_str), stdin) == NULL) {
|
||||
break;
|
||||
}
|
||||
|
||||
float price = atof(price_str);
|
||||
if (price <= 0) {
|
||||
break;
|
||||
}
|
||||
// Na konci budemem mat nacitany jedalny listok
|
||||
// V premennej counter je pocet uspesne nacitanych poloziek
|
||||
return 0;
|
||||
|
||||
strncpy(menu[count].name, input, MAX_NAME_LENGTH - 1);
|
||||
menu[count].price = price;
|
||||
count++;
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
int main() {
|
||||
Pizza menu[MAX_ITEMS];
|
||||
|
||||
int item_count = read_pizza_list(menu);
|
||||
|
||||
qsort(menu, item_count, sizeof(Pizza), compare);
|
||||
|
||||
for (int i = 0; i < item_count; i++) {
|
||||
printf("%s\n%.6f\n", menu[i].name, menu[i].price);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user