Initializacia

This commit is contained in:
Kozar 2024-10-07 16:55:46 +00:00
parent 75c55a1bb9
commit e09f5c99e3

View File

@ -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 main(){
struct pizza vacerajsia = {.name = "Vajcova pizza", .price = 0.2};
printf("Pizza: %s, cena: %f/n", vacerajsia.name, vacerajsia.price -0.1);
int read_pizza_list(Pizza *menu) {
int count = 0;
char input[MAX_NAME_LENGTH];
// 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 pizza
while (count < MAX_ITEMS && fgets(input, sizeof(input), stdin)) {
input[strcspn(input, "\n")] = 0; // Odstran znak noveho riadku
// 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;
}
strncpy(menu[count].name, input, MAX_NAME_LENGTH - 1);
menu[count].price = price;
count++;
}
// Na konci budemem mat nacitany jedalny listok
// V premennej counter je pocet uspesne nacitanych poloziek
return 0;
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;
}