Initializacia
This commit is contained in:
parent
75c55a1bb9
commit
e09f5c99e3
@ -1,55 +1,61 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <ctype.h>
|
|
||||||
|
|
||||||
#define LINE_SIZE 100
|
#define MAX_NAME_LENGTH 100
|
||||||
#define LIST_SIZE 100
|
#define MAX_ITEMS 100
|
||||||
|
|
||||||
struct pizza{
|
typedef struct {
|
||||||
char name[LINE_SIZE];
|
char name[MAX_NAME_LENGTH];
|
||||||
float price;
|
float price;
|
||||||
|
} Pizza;
|
||||||
|
|
||||||
|
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_pizza_list(struct pizza* list){
|
int read_pizza_list(Pizza *menu) {
|
||||||
char buffer[LINE_SIZE]
|
int count = 0;
|
||||||
while(fgets(buffer, LINE_SIZT, stdin) == 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 read_item(struct pizza* list) {
|
// Nacitame cenu pizze
|
||||||
|
char price_str[10];
|
||||||
}
|
if (fgets(price_str, sizeof(price_str), stdin) == NULL) {
|
||||||
|
|
||||||
|
|
||||||
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
|
|
||||||
break;
|
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
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user