C Dilinden anlayan içeri lütfen

Meliodas08

Yeni üye
30 Eyl 2017
35
0
İstanbul
Merhaba. C dilinde şöyle bir şeye programa ihtiyacım var.
1)Kullanıcıdan ayrı ayrı ad,soyad,yaş,maaş girişi alacak (isim ve soy isim char dizisinde olcak global olarak)
2)Bu bilgiler girildikçe en sonda tekrar girmek istiyor musunuz diye soracak.
3)E oldukça sürekli tekrar girilecek ve eski kayıları tutacak H olursa program başka bir şey yapacak. (bu kayıtları ilerde çağırıp girilen bilgileri if yapısına sokacağım)

Bir çok şekilde denedim ancak yapamadım do-while yapıyorum dizi içine atamıyorum. Fonksiyonları pek bilmiyorum yaptım içine attım çağıramadım fonksiyonu bu dilde yeniyim acil yardımlarınızı bekliyorum.
 

'Insider

Katılımcı Üye
2 Eki 2016
654
0
0.0.0.0/0
Kod:
#include <stdio.h>

struct kisi{
    char* ad;
    char* soyad;
    unsigned short yas;
    unsigned int maas;
    
};
int main()
{
    struct kisi* kisiler,*kisiler_gecici;
    kisiler=(struct kisi*)malloc(sizeof(struct kisi));
    int i=0,devam=1;
    char evethayir[1];
    while(devam)
    {
        printf("%d. kisi ismi girin:\n",i+1);
        scanf("%s",&kisiler[i].ad);

        printf("%d. kisi soyismi girin:\n",i+1);
        scanf("%s",&kisiler[i].soyad);
        printf("%d. kisi yasini girin:\n",i+1);
        scanf("%d",&kisiler[i].yas);
        printf("%d. kisi maasini girin:\n",i+1);
        scanf("%d",&kisiler[i].maas);
        
        printf("Devam etmek ister misiniz?(E/H)\n");
        scanf("%s",&evethayir);
        
        
        
        
        if((devam=evethayir[0]=='H'?0:1))
        {
            i++;
            kisiler_gecici=(struct kisi*)realloc(kisiler,(i+1)*sizeof(struct kisi));
            kisiler=kisiler_gecici;
        }
        
    }
    for(int j=0;j<=i;j++)
    {
        printf("%s %s %d %d\n",&kisiler[j].ad,&kisiler[j].soyad,&kisiler[j].yas,&kisiler[j].maas);
        
    }
    
    
    return 0;
}
 

Meliodas08

Yeni üye
30 Eyl 2017
35
0
İstanbul
Kod:
#include <stdio.h>

struct kisi{
    char* ad;
    char* soyad;
    unsigned short yas;
    unsigned int maas;
    
};
int main()
{
    struct kisi* kisiler,*kisiler_gecici;
    kisiler=(struct kisi*)malloc(sizeof(struct kisi));
    int i=0,devam=1;
    char evethayir[1];
    while(devam)
    {
        printf("%d. kisi ismi girin:\n",i+1);
        scanf("%s",&kisiler[i].ad);

        printf("%d. kisi soyismi girin:\n",i+1);
        scanf("%s",&kisiler[i].soyad);
        printf("%d. kisi yasini girin:\n",i+1);
        scanf("%d",&kisiler[i].yas);
        printf("%d. kisi maasini girin:\n",i+1);
        scanf("%d",&kisiler[i].maas);
        
        printf("Devam etmek ister misiniz?(E/H)\n");
        scanf("%s",&evethayir);
        
        
        
        
        if((devam=evethayir[0]=='H'?0:1))
        {
            i++;
            kisiler_gecici=(struct kisi*)realloc(kisiler,(i+1)*sizeof(struct kisi));
            kisiler=kisiler_gecici;
        }
        
    }
    for(int j=0;j<=i;j++)
    {
        printf("%s %s %d %d\n",&kisiler[j].ad,&kisiler[j].soyad,&kisiler[j].yas,&kisiler[j].maas);
        
    }
    
    
    return 0;
}

Öncelikle çok teşekkür ederim birşey diyeceğim açıklama satırlı yapabilir misin bu struct olayını falan tam anlayamadım eğer vaktin varsa yoksa önemli değil tekrardan teşekkür ederim.
 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.