diff --git a/du2/prog b/du2/prog new file mode 100755 index 0000000..98b7de1 Binary files /dev/null and b/du2/prog differ diff --git a/du2/program.c b/du2/program.c new file mode 100644 index 0000000..6340a43 --- /dev/null +++ b/du2/program.c @@ -0,0 +1,75 @@ +#include +#include +#include +#include +#define LINE_SIZE 100 +#define MAXIT 100 + + +struct pizza{ + char name[LINE_SIZE]; + float prize; +}; + + +int read_pizza(struct pizza *item){ + char line_1[LINE_SIZE]; + char line_2[LINE_SIZE]; + + if (fgets(line_1,LINE_SIZE,stdin)==NULL) return 0; + if (fgets(line_2,LINE_SIZE,stdin)==NULL) return 0; + + line_1[strcspn(line_1,"\n")] = '\0'; + line_2[strcspn(line_2,"\n")] = '\0'; + + float price = 0.0; + if (sscanf(line_2, "%f", &price)!=1||price<=0) return 0; + + strcpy(item->name, line_1); + item->prize = price; + + return 1; +} + + +int read_pizza_list(struct pizza* list){ + int counter = 0; + for(int i = 0; iprizeprize) return -1; + if(p1->prize>p2->prize) return 1; + + return strcmp(p1->name,p2->name); + +} + + +int main(){ + struct pizza list[MAXIT]; + memset(list,0,sizeof(list)); + + int count = read_pizza_list(list); + + qsort(list,count,sizeof(struct pizza), compare_pizza); + for (int i = 0;i