pvjc20/du6/program.c

114 lines
3.3 KiB
C

/******************************************************************************
Welcome to GDB Online.
GDB online is an online compiler and debugger tool for C, C++, Python, Java, PHP, Ruby, Perl,
C#, VB, Swift, Pascal, Fortran, Haskell, Objective-C, Assembly, HTML, CSS, JS, SQLite, Prolog.
Code, Compile, Run and Debug online from anywhere in world.
*******************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#define fullSIZE 1000
#define wSIZE 100
#include <string.h>
int main()
{
int SIZE = 0;
if(!(scanf("%d", &SIZE))){
printf("Nespravny vstup\n");
return 0;
}
if(SIZE < 1){
printf("Nespravny vstup\n");
return 0;
}
int pm = 0;
char** pole_smernikov = malloc(fullSIZE * sizeof(char));
//char* success[SIZE];
//char* unsuccess[SIZE];
//memset(pole_smernikov,0,SIZE*sizeof(char*));
int k = 0;
char* line = malloc(wSIZE * sizeof(char));
//memset(line,0,SIZE);
//char* r;
//int q = 0;
size_t pocet_znakov = 0;
int antiInfC = 0;
char r = 'a';
while (fgets(line,wSIZE,stdin)) {
k = 0;
pocet_znakov = strlen(line);
char* all = malloc(pocet_znakov);
memcpy(all, line, pocet_znakov);
for(int x = 0; x < pm; x++){
if(memcmp(pole_smernikov[x], line, pocet_znakov) == 0){
k++;
}
//pole_smernikov[k] = line;
}
if(0 == k){
pole_smernikov[pm] = all;
pm++;
}
if((line[0] == '\n' || isalpha(line[0])!=0 ) && antiInfC == 1 && r == '\n') {
break;
}
r = line[0];
antiInfC++;
}
free(line);
k = 0;
int i = 0;
i = 0;
while (i < pm){
for(int j = 0+1; j < pm-i; j++){
if(0 < strcmp(pole_smernikov[j-1], pole_smernikov[j])){
char* temp = pole_smernikov[j];
pole_smernikov[j] = pole_smernikov[j - 1];
pole_smernikov[j-1] = temp;
}
}
// if (memcmp(pole_smernikov[i],line,pocet_znakov)){
// // Nasiel som
// unsuccess[k] = pole_smernikov[i];
// printf("%s\n", unsuccess[k]);
// } else{
// success[q] = pole_smernikov[i];
// printf("%s\n", success[q]);
// }
i++;
}
// printf("%s\n", pole_smernikov[0]);
if(NULL == pole_smernikov[1]){
puts("Ziadne prihlasky");
return 0;
}
puts("Prijati studenti:");
for(int i = 0+1; i < 1+SIZE; i++){
if(pole_smernikov[i] != NULL){
printf("%s", pole_smernikov[i]);
} else{
}
free(pole_smernikov[i]);
}
int rra = -1;
pm = pm + rra;
if(0 > (SIZE - pm)){
puts("Neprijati studenti:");
for(int i = SIZE+1; i<pm+1; i++){
printf("%s", pole_smernikov[i]);
free(pole_smernikov[i]);
}
}
free(pole_smernikov);
return 0;
}