Untitled

mail@pastecode.io avatar
unknown
plain_text
2 months ago
2.7 kB
2
Indexable
Never
#include <stdio.h>
#include <stdlib.h>

// Struktura przechowująca dane studenta
struct student {
    char imie[25];
    char nazwisko[50];
    int nrind;
};

// Funkcja do wprowadzania danych studentów
void wprowadz_dane(struct student* st) {
    int ilosc;
    printf("Podaj ile studentow chcesz dodac:\n");
    scanf("%d", &ilosc);

    // Sprawdzenie, czy ilość studentów jest dodatnia
    if (ilosc <= 0) {
        printf("Bledna ilosc studentow. Koniec programu.\n");
        exit(EXIT_FAILURE);
    }

    // Pętla wprowadzająca dane dla ilości studentów podanej przez użytkownika
    for (int i = 0; i < ilosc; i++) {
        // Wprowadzanie imienia
        printf("Podaj Imie: ");
        if (scanf("%24s", st[i].imie) != 1) {
            printf("Blad wprowadzania imienia. Koniec programu.\n");
            exit(EXIT_FAILURE);
        }

        // Wprowadzanie nazwiska
        printf("Podaj Nazwisko: ");
        if (scanf("%49s", st[i].nazwisko) != 1) {
            printf("Blad wprowadzania nazwiska. Koniec programu.\n");
            exit(EXIT_FAILURE);
        }

        // Wprowadzanie numeru albumu
        printf("Podaj numer albumu: ");
        if (scanf("%d", &st[i].nrind) != 1) {
            printf("Blad wprowadzania numeru albumu. Koniec programu.\n");
            exit(EXIT_FAILURE);
        }
    }
}

// Funkcja do wyświetlania danych studentów
void wyswietl(struct student* st, int ilosc) {
    // Pętla wyświetlająca dane dla ilości studentów
    for (int i = 0; i < ilosc; i++) {
        // Wyświetlanie wprowadzonych danych
        printf("Wprowadzone dane: \n");
        printf("Imie: %s,  Nazwisko: %s, Nr Albumu: %d \n", st[i].imie, st[i].nazwisko, st[i].nrind);
    }
}

int main() {
    int ilosc;
    printf("Podaj ile studentow chcesz dodac: ");
    if (scanf("%d", &ilosc) != 1) {
        printf("Blad wprowadzania ilosci studentow. Koniec programu.\n");
        return 1;
    }

    // Sprawdzenie, czy ilość studentów jest dodatnia
    if (ilosc <= 0) {
        printf("Bledna ilosc studentow. Koniec programu.\n");
        return 1;
    }

    // Alokacja pamięci dla tablicy studentów
    struct student *tablica_studentow = malloc(ilosc * sizeof(struct student));
    if (tablica_studentow == NULL) {
        fprintf(stderr, "Blad alokacji pamieci.\n");
        return 1;
    }

    // Wywołanie funkcji do wprowadzania danych
    wprowadz_dane(tablica_studentow);

    // Wywołanie funkcji do wyświetlania danych
    wyswietl(tablica_studentow, ilosc);

    // Zwolnienie zaalokowanej pamięci
    free(tablica_studentow);

    return 0;
}
Leave a Comment