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