Initialization
This commit is contained in:
		
							parent
							
								
									a56e7176ad
								
							
						
					
					
						commit
						a2e49258b7
					
				@ -2,69 +2,67 @@
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
 | 
			
		||||
int compare_names(const void *a, const void *b) {
 | 
			
		||||
// Funkcia na kontrolu abecedného poradia
 | 
			
		||||
int compare(const void *a, const void *b) {
 | 
			
		||||
    return strcmp(*(const char **)a, *(const char **)b);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int main() {
 | 
			
		||||
    int count;
 | 
			
		||||
    int max_students;
 | 
			
		||||
    char **applications = NULL;
 | 
			
		||||
    char buffer[100];
 | 
			
		||||
    char **applications;
 | 
			
		||||
    int i, j;
 | 
			
		||||
    int num_applications = 0;
 | 
			
		||||
 | 
			
		||||
    if (scanf("%d", &count) != 1 || count <= 0) {
 | 
			
		||||
        printf("Nespravny vstup\n");
 | 
			
		||||
    // Načítanie počtu študentov na prijatie
 | 
			
		||||
    if (scanf("%d", &max_students) != 1 || max_students <= 0) {
 | 
			
		||||
        puts("Nespravny vstup");
 | 
			
		||||
        return 1;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    applications = (char **)malloc(count * sizeof(char *));
 | 
			
		||||
    if (!applications) {
 | 
			
		||||
        printf("Chyba pri alokacii pamate\n");
 | 
			
		||||
    // Dynamická alokácia pamäte pre zoznam prihlášok
 | 
			
		||||
    applications = (char **)malloc(max_students * sizeof(char *));
 | 
			
		||||
    if (applications == NULL) {
 | 
			
		||||
        puts("Chyba alokacie pamate");
 | 
			
		||||
        return 1;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    i = 0;
 | 
			
		||||
    while (i < count && fgets(buffer, sizeof(buffer), stdin)) {
 | 
			
		||||
        int len = strlen(buffer);
 | 
			
		||||
        if (len > 0 && buffer[len - 1] == '\n') { // Remove newline character if present
 | 
			
		||||
            buffer[len - 1] = '\0';
 | 
			
		||||
        }
 | 
			
		||||
        int found = 0;
 | 
			
		||||
        for (j = 0; j < i; j++) {
 | 
			
		||||
            if (strcmp(applications[j], buffer) == 0) {
 | 
			
		||||
                found = 1;
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        if (!found) {
 | 
			
		||||
            applications[i] = strdup(buffer);
 | 
			
		||||
            i++;
 | 
			
		||||
    // Načítanie prihlášok
 | 
			
		||||
    while (scanf("%s", buffer) == 1 && buffer[0] != '\0') {
 | 
			
		||||
        applications[num_applications] = strdup(buffer);
 | 
			
		||||
        if (applications[num_applications] == NULL) {
 | 
			
		||||
            puts("Chyba alokacie pamate");
 | 
			
		||||
            return 1;
 | 
			
		||||
        }
 | 
			
		||||
        num_applications++;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (i == 0) {
 | 
			
		||||
        printf("Ziadne prihlasky\n");
 | 
			
		||||
    // Kontrola, či boli načítané nejaké prihlášky
 | 
			
		||||
    if (num_applications == 0) {
 | 
			
		||||
        puts("Ziadne prihlasky");
 | 
			
		||||
        return 1;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Sort the applications alphabetically
 | 
			
		||||
    qsort(applications, i, sizeof(char *), compare_names);
 | 
			
		||||
    // Usporiadanie prihlášok podľa abecedy
 | 
			
		||||
    qsort(applications, num_applications, sizeof(char *), compare);
 | 
			
		||||
 | 
			
		||||
    printf("Prijati studenti:");
 | 
			
		||||
    for (j = 0; j < i; j++) {
 | 
			
		||||
        printf("%s\n", applications[j]);
 | 
			
		||||
    // Výpis prijatých študentov
 | 
			
		||||
    puts("Prijati studenti:");
 | 
			
		||||
    int i;
 | 
			
		||||
    for (i = 0; i < num_applications && i < max_students; i++) {
 | 
			
		||||
        printf("%s\n", applications[i]);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (count < i) {
 | 
			
		||||
        printf("Neprijati studenti:");
 | 
			
		||||
        for (; j < i; j++) {
 | 
			
		||||
            printf("%s\n", applications[j]);
 | 
			
		||||
    // Výpis neprijatých študentov
 | 
			
		||||
    if (i < num_applications) {
 | 
			
		||||
        puts("Neprijati studenti:");
 | 
			
		||||
        for (; i < num_applications; i++) {
 | 
			
		||||
            printf("%s\n", applications[i]);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Free allocated memory
 | 
			
		||||
    for (j = 0; j < i; j++) {
 | 
			
		||||
        free(applications[j]);
 | 
			
		||||
    // Uvoľnenie pamäte
 | 
			
		||||
    for (i = 0; i < num_applications; i++) {
 | 
			
		||||
        free(applications[i]);
 | 
			
		||||
    }
 | 
			
		||||
    free(applications);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user