This commit is contained in:
Denis Landa 2025-10-08 09:38:46 +02:00
commit f73bcfb4dd

52
du2/program.c Normal file
View File

@ -0,0 +1,52 @@
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX 1000
#define SIZE 101
struct pizza {
char name[SIZE];
float price;
};
int main() {
struct pizza list[MAX];
int count = 0;
char name[SIZE];
char price_str[SIZE];
float price;
while (1) {
if (fgets(name, SIZE, stdin) == NULL) break;
name[strcspn(name, "\n")] = 0;
if (strlen(name) == 0) break;
if (fgets(price_str, SIZE, stdin) == NULL) break;
price_str[strcspn(price_str, "\n")] = 0;
if (sscanf(price_str, "%f", &price) != 1) break;
if (price <= 0) break;
strcpy(list[count].name, name);
list[count].price = price;
count++;
if (count >= MAX) break;
}
for (int i = 0; i < count - 1; i++) {
for (int j = 0; j < count - i - 1; j++) {
if (list[j].price > list[j + 1].price ||
(list[j].price == list[j + 1].price && strcmp(list[j].name, list[j + 1].name) > 0)) {
struct pizza temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
}
}
}
for (int i = 0; i < count; i++) {
printf("%s\n%.6f\n", list[i].name, list[i].price);
}
return 0;
}