Update 'du6/program.c'

This commit is contained in:
Anzhelika Nikolaieva 2023-04-09 19:26:40 +00:00
parent aa1d0cb61c
commit d3560cecad

View File

@ -5,68 +5,68 @@
int main() { int main() {
char base[200][30]; char base[200][30]; // Dvojrozmerné pole pre ukladanie prihlášok
char string[30]; char string[30]; // Pole pre načítanie vstupu
int stop = 0; int stop = 0; // Premenná pre kontrolu vstupu
int counter = 0; int counter = 0; // Počet prijatých študentov
int a = 0; int a = 0; // Počet prihlášok
memset(base, 0, sizeof(base)); memset(base, 0, sizeof(base)); // Nulovanie dvojrozmerného poľa
memset(string, 0, 30); memset(string, 0, 30);
char *r; char *r;
r = fgets(string, 1000, stdin); r = fgets(string, 1000, stdin); // Načítanie prvého riadku zo štandardného vstupu
if (r == NULL) if (r == NULL)
return 0; return 0;
sscanf(string, "%d", &counter); sscanf(string, "%d", &counter); // Načítanie počtu prijatých študentov
if(strlen(r) == 1 || counter < 1) { if(strlen(r) == 1 || counter < 1) { // Kontrola správnosti vstupu
puts("Nespravny vstup"); puts("Nespravny vstup");
return 0; return 0;
} }
for (int b = 0; b < 30; b++) { for (int b = 0; b < 30; b++) { // Skontrolujte, či prvý riadok obsahuje nejaké abecedné znaky
if (isalpha(r[b])) { if (isalpha(r[b])) { // Ak je písmeno, nastavíme stop na 1
stop = 1; stop = 1;
break; break;
} }
} }
if (stop != 0) { if (stop != 0) { // Ak bol zistený neplatný vstup, vypíšeme chybu a ukončíme program
puts("Nespravny vstup"); puts("Nespravny vstup");
return 0; return 0;
} }
while (strlen(r) > 1) { while (strlen(r) > 1) { // Načítavanie prihlášok zo štandardného vstupu
memset(string, 0, 30); memset(string, 0, 30);
r = fgets(string, 30, stdin); r = fgets(string, 30, stdin); // Načítanie ďalšieho riadku zo štandardného vstupu
if (r == NULL) if (r == NULL)
break; break;
stop = 0; stop = 0;
for (int c = 0; c < 200; c++) { for (int c = 0; c < 200; c++) { // Kontrola, či prihláška už nie je v zozname
if (strcmp(base[c], string) == 0) { if (strcmp(base[c], string) == 0) { // Ak je, nastavíme stop na 1 a ukončíme cyklus
stop = 1; stop = 1;
break; break;
} }
} }
if (stop == 0 && strlen(r) > 1) { if (stop == 0 && strlen(r) > 1) { // Ak prihláška nie je v zozname a nie je prázdna, uložíme ju do poľa
strcpy(base[a], r); strcpy(base[a], r);
a++; a++;
} }
} }
if (a == 0) { if (a == 0) { // ak je základné pole prázdne, vypíše chybové hlásenie a vráti 0
puts("Ziadne prihlasky"); puts("Ziadne prihlasky");
return 0; return 0;
} }
for (int d = 0; d < a; d++) { for (int d = 0; d < a; d++) { // Zoradiť základné pole abecedne
for (int f = 0; f < a; f++) { for (int f = 0; f < a; f++) {
if (strcmp(base[d], base[f]) < 0) { if (strcmp(base[d], base[f]) < 0) {
char buffer[30]; char buffer[30];
@ -78,7 +78,7 @@ int main() {
} }
} }
puts("Prijati studenti:"); puts("Prijati studenti:"); // vytlačí prijatých študentov a ak sa dosiahne hodnota počítadla
for (int j = 0; j < a; j++) { for (int j = 0; j < a; j++) {
if (j == counter) { if (j == counter) {
@ -87,4 +87,4 @@ int main() {
printf("%s", base[j]); printf("%s", base[j]);
} }
return 0; return 0;
} } //Тайвань крутышка ))