Mam parę pytań dot. C
Mianowicie...
1.Mam takie zadanie :
Zaproponuj odpowiednie struktury do zapamiętania dla dwóch osób:
a)imię,nazwisko,wiek,data urodzenia.
b)Napisz funkcję, która zwróci 0, gdy dwie struktury są identyczne, w przeciwnym wypadku zwróci -1
Mój program(jest na stringach, ale nie ma żadnego przeciwskazania do zamienienia np na inty czy chary
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
struct osoba {char imie[25], nazwisko[25],wiek[3],data_ur[10];} osoba1,osoba2;
void wpisz(struct osoba *);
void wyswietl(struct osoba *);
int porownanie (struct osoba *,struct osoba *);
int main()
{ int a;
wpisz(&osoba1);
wyswietl(&osoba1);
wpisz(&osoba2);
wyswietl(&osoba2);
a=porownanie(&osoba1,&osoba2);
if(a==0)
printf("\nPodano dwie identyczne struktury");
if(a==-1)
printf("\nNie podano identycznych struktur");
while(!kbhit());
return 0;
}
void wpisz (struct osoba *x)
{
printf("\nPodaj imie : "); scanf("%s",x->imie);
printf("\nPodaj nazwisko : "); scanf("%s",x->nazwisko);
printf("\nPodaj wiek : "); scanf("%s",x->wiek);
printf("\nPodaj date urodzenia : "); scanf("%s",x->data_ur);
}
void wyswietl(struct osoba *x)
{
printf("\nImie : %s",x->imie);
printf("\nNazwisko : %s",x->nazwisko);
printf("\nWiek : %s",x->wiek);
printf("\nData Urodzenia : %s",x->data_ur);
}
int porownanie (struct osoba *x1, struct osoba *x2)
{
if (x1->imie==x2->imie)
return 0;
if (x1->nazwisko==x2->nazwisko)
return 0;
if (x1->wiek==x2->wiek)
return 0;
if (x1->data_ur==x2->data_ur)
return 0;
else
return -1;
}I za każdym razem, czy podam, czy nie podam identycznych struktur, zwraca mi -1..
2 pytanie:
czy zapis:
if (x1->imie==x2->imie) return 0; if (x1->nazwisko==x2->nazwisko) return 0; if (x1->wiek==x2->wiek) return 0; if (x1->data_ur==x2->data_ur) return 0; else return -1;jest równoważny:
if (x1->imie==x2->imie || x1->nazwisko==x2->nazwisko || x1->wiek==x2->wiek || x1->data_ur==x2->data_ur||) return 0; else return -1;
I jeszcze jedno pytanko
Mam takie zadanie:
Moja strukrura:"Używając operacji sizeof podaj minimalne rozmiary struktur"
struct dana {char A[4]; int w;};Czy prawidłowo to napisałem?:
#include <stdio.h>
#include <conio.h>
struct dana {char A[4]; int w;};
int main()
{
printf("%d",sizeof(struct dana));
while(!kbhit());
}Dzięki i pozdrawiam



Temat jest zamknięty





