Cześć, mam problem z zadaniem:
Zbuduj prostą bazę danych.
Stwórz strukturę sOsoba zawierającą pola: - nazwisko (tablica char[] rozmiaru 20)
- imie (tablica char[] rozmiaru 20)
- telefon (int) - 9 cyfr pisanych po kolei
– plec (char) - znak "m" - mężczyzna, "k" – kobieta, – średnia ocen (float) - data urodzenia (struktura sData)
Struktura sData: - dzien (short) - miesiac (short) - rok (short)
Zadeklaruj tablicę o 5 elementach typu sOsoba.
Stwórz funkcję Wczytaj(), która pobierze z klawiatury wartości poszczególnych pól do obiektu (typ parametru - wskaźnik na właściwy obiekt typu sOsoba, lub tablica i indeks właściwego elementu).
Stwórz funkcję Drukuj(), która ma wydrukować na ekranie dane odnośnie konkretnej osoby. Parametry funkcji (const wskaźnik na właściwy obiekt typu sOsoba, lub tablica i indeks właściwego elementu).
W głównym kodzie:
• Wywołaj 5 razy funkcję Wczytaj(), za każdym razem pobierz z klawiatury
dane innej osoby.
• Wczytaj z klawiatury numer osoby, którą chcesz wydrukować,
a następnie wydrukuj pola określonego obiektu.
To mój kod, ktoś wie dlaczego nie działa?
#include <stdio.h>
#include <string.h>
struct sData
{
short int dzien;
short int miesiac;
short int rok;
};
struct sOsoba
{
char nazwisko[20];
char imie[20];
int telefon;
char plec;
float srednia;
struct sData urodzenie;
};
struct sOsoba tab[5];
void Wczytaj(struct sOsoba *obiekt)
{
printf("podaj nazwisko:\n");
scanf("%s",(*obiekt).nazwisko);
printf("podaj imie:\n");
scanf("%s",obiekt->imie);
printf("podaj telefon:\n");
scanf("%d",&(*obiekt).telefon);
printf("podaj plec (m lub k):\n");
getchar();
scanf("%c",&(*obiekt).plec);
printf("podaj srednia ocen:\n");
scanf("%f",&obiekt->srednia);
printf("podaj dzien urodzenia:\n");
scanf("%hu",&obiekt->urodzenie.dzien);
printf("podaj miesiac urodzenia:\n");
scanf("%hu",&obiekt->urodzenie.miesiac);
printf("podaj rok urodzenia:\n");
scanf("%hu",&(*obiekt).urodzenie.rok);
}
void Drukuj(struct sOsoba tab[],int n)
{
printf("Nazwisko: %s, imie: %s, telefon: %d, plec: %c, srednia: %f, dzien urodzenia: %hu, miesiac urodzenia: %hu, rok urodzenia: %hu\n", tab[n].nazwisko, tab[n].imie, tab[n].telefon, tab[n].plec, tab[n].srednia,tab[n].urodzenie.dzien, tab[n].urodzenie.miesiac,tab[n].urodzenie.rok);
}
void Zadanie5()
{
for(int i = 0; i<5; i++)
{
Wczytaj(&tab[0]);
}
printf("Dane ktorej osoby chcesz wywolac?\n");
int n;
scanf("%d", &n);
Drukuj(tab,n);
}
int main()
{
printf("Zadanie 5:\n");
Zadanie5();
return 0;
}