#include #include #include #define LINESIZE 100 struct Pizza { char name[LINESIZE]; float prize; }; int main() { char line[LINESIZE]; memset(line, 0, LINESIZE); char name[LINESIZE]; struct Pizza jedalny_listok[LINESIZE]; memset(jedalny_listok, 0, sizeof(struct Pizza) * LINESIZE); size_t velkost; int a = 0; int i = 0; int c; int d; float pred; float cena; char strpred[LINESIZE]; memset(strpred,0,LINESIZE); while (fgets(line, LINESIZE, stdin)) { velkost = strlen(line); if (velkost == 1 && line[velkost - 1] == '\n') { break; } if (i == 0) { strcpy(jedalny_listok[a].name, line); i++; a++; } else if (i == 1){ cena = atof(line); jedalny_listok[a].prize = cena; i--; a++; } } a = a / 2; //printf("%d", a); for (c = 0; c < a - 1; c++){ for (d = c; d < a - c - 1; d++){ if (jedalny_listok[d].prize > jedalny_listok[d+2].prize){ pred = jedalny_listok[d].prize; jedalny_listok[d].prize = jedalny_listok[d + 2].prize; jedalny_listok[d+2].prize = pred; strcpy(strpred, jedalny_listok[d - 1].name); strcpy(jedalny_listok[d - 1].name, jedalny_listok[d + 1].name); strcpy(jedalny_listok[d + 1].name, strpred); } else if(jedalny_listok[d].prize == jedalny_listok[d+2].prize){ if(strcmp(jedalny_listok[c].name, jedalny_listok[d].name) > 0){ strcpy(strpred, jedalny_listok[d - 1].name); strcpy(jedalny_listok[d - 1].name, jedalny_listok[d + 1].name); strcpy(jedalny_listok[d + 1].name, strpred); } } } } a = a * 2; for (i = 0; i