Yapılar(struct)

Başlatan robikod, 23 Nisan 2016, 18:27:43

robikod

Bu koddaki mantık hatasını çözemedim, program doğru çalışmıyor hata tam olarak nerede acaba ?

#include <stdio.h>

struct tarih

{ 
int gun;
int ay;
int yil;
 };

struct ogrenci
{
	char ad[10];
	char soyad[10];
	int yas;

	
	
};

main()

{
	struct ogrenci ogr[10];
	struct tarih d_tarihi[10];

	
	
	for(int i=0; i<10; i++)
	
	{
		printf("%d.ogrencinin ad-soyad bilgilerini giriniz:",i);scanf("%c %c",&ogr[i].ad, &ogr[i].soyad);
	    printf("%d.ogrencinin yas bilgisini giriniz :",i); scanf("%d",&ogr[i].yas);

		
		printf("%d.ogrencisnin dogum tarihi bilgisini giriniz g/ay/yil"); scanf("%d %d %d",&d_tarihi[i].gun,&d_tarihi[i].ay,&d_tarihi[i].yil);
			
	}
	
	for (int i=0; i<10;i++)
	{
		
		printf("%d. ogrencinin adi soyadi %c %c\n", ogr[i].ad,ogr[i].soyad);
		printf("%d. ogrencinin yasi %d dogum tarihi %2d %2d %2d",ogr[i].yas,d_tarihi[i].gun,d_tarihi[i].ay,d_tarihi[i].yil);
	}
	
	
	
	
	
}

pea

String(null ile biten karakter dizisi) için "%s" kullanacaksınız. "%c" tek karakter için.

baran123

#include <stdio.h>

struct tarih
{
    int gun;
    int ay;
    int yil;
};

struct ogrenci
{
	char ad[10];
	char soyad[10];
	int yas;
};

int main()
{
	struct ogrenci ogr[10];
	struct tarih d_tarihi[10];

    for(int i=0; i<3; i++)
    {
        printf("%d.ogrencinin ad-soyad bilgilerini giriniz : ", i + 1);
        scanf("%s %s", &ogr[i].ad, &ogr[i].soyad);

        printf("%d.ogrencinin yas bilgisini giriniz : ", i + 1);
        scanf("%d", &ogr[i].yas);

        printf("%d.ogrencinin dogum tarihi bilgisini giriniz g/ay/yil : ", i + 1);
        scanf("%d %d %d", &d_tarihi[i].gun, &d_tarihi[i].ay, &d_tarihi[i].yil);
    }
    
    printf("\n\n")

    for (int i=0; i<3; i++)
    {
        printf("%d. ogrencinin adi soyadi : %s %s\n", i + 1, ogr[i].ad, ogr[i].soyad);
        printf("%d. ogrencinin yasi : %d dogum tarihi : %2d %2d %2d\n", i + 1, ogr[i].yas, d_tarihi[i].gun, d_tarihi[i].ay, d_tarihi[i].yil);
    }
    return 0;
}