pvjc23/du6/program.c

93 lines
2.1 KiB
C

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <assert.h>
#include <math.h>
#include <ctype.h>
#define SIZE 100
int compare(const void* arg1, const void* arg2){
const char** ptr1 = (const char**)arg1;
const char** ptr2 = (const char**)arg2;
return strcmp(*ptr1, *ptr2);
}
int main(){
char* pole_smernikov[SIZE];
memset(pole_smernikov,0,SIZE*sizeof(char*));
char line[SIZE];
memset(line,0,SIZE);
char* r = fgets(line, SIZE, stdin);
int pocet_mien_v_poli = 0;
int copy = 0;
int kolicestvo = atoi(line);
if(kolicestvo <= 0){
puts("Nespravny vstup");
return 0;
}
//int countpr = 0;
while(1){
r = fgets(line, SIZE, stdin);
if(line[0] == '\n'){
break;
}
if(r == NULL){
break;
}
int pocet_znakov = strlen(line);
/*for(int i = 0; i < pocet_znakov; i++){
if(!isalpha(line[i])){
countpr++;
printf("-->%d\n",countpr);
}
}
if(countpr != 2){
puts("Ziadne prihlasky\n");
return 0;
}*/
for(int i = 0; i < pocet_mien_v_poli; i++){
if(strcmp(pole_smernikov[i],line) == 0){
copy = 1;
//printf("Chyba\n");
}
}
if(copy == 0){
if (pocet_mien_v_poli >= SIZE) {
printf("Pole smernikov je plne\n");
break;
}
pole_smernikov[pocet_mien_v_poli] = malloc(pocet_znakov + 1);
memcpy(pole_smernikov[pocet_mien_v_poli],line,pocet_znakov + 1);
pocet_mien_v_poli += 1;
//printf("Opa\n");
}
copy = 0;
}
qsort(pole_smernikov, pocet_mien_v_poli, sizeof(char*), compare);
//printf("===>%d\n", pocet_mien_v_poli);
if(pocet_mien_v_poli == 0){
puts("Ziadne prihlasky");
return 0;
}
if(pocet_mien_v_poli > kolicestvo){
puts("Prijati studenti:");
for (int i = 0; i < kolicestvo; i++) {
printf("%s", pole_smernikov[i]);
}
puts("Neprijati studenti:");
for (int i = kolicestvo; i < pocet_mien_v_poli; i++) {
printf("%s", pole_smernikov[i]);
}
}
else{
puts("Prijati studenti:");
for (int i = 0; i < pocet_mien_v_poli; i++) {
printf("%s", pole_smernikov[i]);
}
}
for (int i = 0; i < pocet_mien_v_poli; i++){
free(pole_smernikov[i]);
}
return 0;
}