136 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			136 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
#include <stdio.h>
 | 
						|
#include <stdlib.h>
 | 
						|
#include <string.h>
 | 
						|
#include <stdbool.h>
 | 
						|
#include <ctype.h>
 | 
						|
 | 
						|
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
 | 
						|
 | 
						|
int compare(const void *a, const void *b)
 | 
						|
{
 | 
						|
    const char **pa,**pb;
 | 
						|
 | 
						|
    pa = (const char **)a;
 | 
						|
    pb = (const char **)b;
 | 
						|
    return( strcmp(*pa,*pb) );
 | 
						|
}
 | 
						|
 | 
						|
int main() {
 | 
						|
	
 | 
						|
	int pocet_slov,pocet_znakov=0,i=0,count=0,number=0;
 | 
						|
	bool zhoda=false;
 | 
						|
	char* pole_smernikov[1000]={0};
 | 
						|
	char line[1000];
 | 
						|
	
 | 
						|
	char cislo[1000];
 | 
						|
	fgets(cislo,1000,stdin);
 | 
						|
	int dlzka=strlen(cislo);
 | 
						|
	for(i=0;i<dlzka;i++){
 | 
						|
		if(isdigit(cislo[i])){
 | 
						|
			number=number*10;
 | 
						|
			number+=cislo[i]-'0';
 | 
						|
		}
 | 
						|
		else if(cislo[i]==' ' || cislo[i]=='\n' || cislo[i]=='	'){
 | 
						|
			;
 | 
						|
		}
 | 
						|
		else{
 | 
						|
			puts("Nespravny vstup");
 | 
						|
			return 0;
 | 
						|
		}
 | 
						|
	}
 | 
						|
	//printf("prijaty: %d\n",number);
 | 
						|
	if(number==0){
 | 
						|
		puts("Nespravny vstup");
 | 
						|
		return 0;
 | 
						|
	}
 | 
						|
	while(fgets(line,1000,stdin)!=NULL){
 | 
						|
		if(strlen(line)<1){
 | 
						|
			return 0;
 | 
						|
		}
 | 
						|
		pocet_znakov=strlen(line);
 | 
						|
		//printf("Pocet znakov: %d\n",pocet_znakov);
 | 
						|
		for(i=0;i<pocet_znakov;i++){
 | 
						|
			if(line[i]>='A' && line[i]<='Z')count++;
 | 
						|
			if(line[i]>='a' && line[i]<='z')count++;
 | 
						|
		}
 | 
						|
		if(count==0){
 | 
						|
			//printf("Koniec");
 | 
						|
			break;
 | 
						|
		}
 | 
						|
		int size = (int)strlen(line);
 | 
						|
		size--;
 | 
						|
		while(size!=-1){
 | 
						|
			if(line[size]==' ' || line[size]=='\n' || line[size]=='	'){
 | 
						|
				line[size]='\0';
 | 
						|
			}
 | 
						|
			else{
 | 
						|
				break;
 | 
						|
			}
 | 
						|
			size--;
 | 
						|
		}
 | 
						|
		//printf("Retazec: #%s#\n",line);
 | 
						|
		for(i=0;i<pocet_slov;i++){
 | 
						|
			char *str1=pole_smernikov[i];
 | 
						|
			if(strcmp(str1,line)==0)zhoda=true;
 | 
						|
		}
 | 
						|
		if(!zhoda){
 | 
						|
		//	printf("Pridavam!\n");
 | 
						|
			pole_smernikov[pocet_slov] = malloc(pocet_znakov + 1);
 | 
						|
			memcpy(pole_smernikov[pocet_slov],line,pocet_znakov + 1);
 | 
						|
			pocet_slov += 1;
 | 
						|
		}
 | 
						|
		count=0;
 | 
						|
		zhoda=false;
 | 
						|
	}
 | 
						|
	if(pocet_slov==0){
 | 
						|
		puts("Ziadne prihlasky");
 | 
						|
		return 0;
 | 
						|
	}
 | 
						|
	
 | 
						|
	
 | 
						|
	
 | 
						|
	
 | 
						|
	for (i = 0; i < pocet_slov; i++){
 | 
						|
		
 | 
						|
		int size = (int)strlen(pole_smernikov[i]);
 | 
						|
		size--;
 | 
						|
		while(size!=0){
 | 
						|
			if(pole_smernikov[i][size]==' ' || pole_smernikov[i][size]=='\n' || pole_smernikov[i][size]=='	'){
 | 
						|
				pole_smernikov[i][size]='\0';
 | 
						|
			}
 | 
						|
			else{
 | 
						|
				break;
 | 
						|
			}
 | 
						|
			size--;
 | 
						|
		}
 | 
						|
    	//printf("%d:	  %s\n",i+1,pole_smernikov[i]);
 | 
						|
	}
 | 
						|
	
 | 
						|
	
 | 
						|
	qsort(pole_smernikov,pocet_slov,sizeof(char *),compare);
 | 
						|
	
 | 
						|
	
 | 
						|
	//printf("Sorted:\n");
 | 
						|
	if(pocet_slov<=number && number>0){
 | 
						|
		puts("Prijati studenti:");
 | 
						|
		for (i = 0; i < pocet_slov; i++){
 | 
						|
    		printf("%s\n",pole_smernikov[i]);
 | 
						|
		}
 | 
						|
	}
 | 
						|
	else{
 | 
						|
		puts("Prijati studenti:");
 | 
						|
		for (i = 0; i < number; i++){
 | 
						|
    		printf("%s\n",pole_smernikov[i]);
 | 
						|
		}
 | 
						|
		puts("Neprijati studenti:");
 | 
						|
		for (i = number; i < pocet_slov; i++){
 | 
						|
    		printf("%s\n",pole_smernikov[i]);
 | 
						|
		}
 | 
						|
	}
 | 
						|
	
 | 
						|
	for (i = 0; i < pocet_slov; i++){
 | 
						|
    	free(pole_smernikov[i]);
 | 
						|
	}
 | 
						|
	
 | 
						|
	return 0;
 | 
						|
} |