• 23-12-2022, 18:17:14
    #1
    Merhaba hocalarım bir konuda takıldım ve yardımınıza ihtiyacım var. Aslında internet üzerinde sorunun çözümü mevcut fakat farklı farklı fonksiyonlar kullanarak sorunu çözmüşler.


    #include <stdio.h>
    #include <stdlib.h>
    
    struct insan {
    char *isim_soyisim[30];
    char *meslek[30];
    
    };
    
    int main()
    {
         int adet;
        printf("kac adet isim gireceksin? ");
        scanf("%d", &adet);
    
        struct insan *insanlar = (struct insan*) malloc(adet*sizeof(struct insan));
    
        for(int i = 0; i<adet; i++)
        {
            printf("isim ve soyisim gir: ");
            scanf("%s", (insanlar+i)->isim_soyisim);
    
            printf("meslegi gir: ");
            scanf("%s", (insanlar+i)->meslek);
        }
    
        return 0;
    }
    Bu şekilde bir kodum var fakat "kac adet isim gireceksin? " değeri girdikten sonra gelen döngüdeki ilk elemana girmem gereken değeri atlayıp diğer elemandan başlıyor, bu sorunu nasıl çözebilirim? şimdiden cevaplarınız için teşekkürler
  • 23-12-2022, 18:31:10
    #2
    Attiginiz algoritmaya musait olunca bakicam hocam
  • 23-12-2022, 18:34:58
    #3
    yunusemre34 adlı üyeden alıntı: mesajı görüntüle
    Attiginiz algoritmaya musait olunca bakicam hocam
    Tamamdır çok teşekkürler hocam
  • 23-12-2022, 20:13:32
    #4
    Buyrun hocam birde şu algoritmamı deneyin
    #include <stdio.h>
    #include <stdlib.h>
     
    struct human {
        char fullname[30];
        char job[30];
    };
     
    int main()
    {
        int amount,i;
        
        printf("How many names will you enter? \n");
        scanf("%d",&amount);
        
        struct human *humans = (struct human*) malloc (amount *sizeof(struct human));
        
        for(i = 0; i < amount; ++i){
            printf("Please enter the fullname: ");
            scanf("%s", (humans+i) -> fullname);
            
            printf("Please enter the %s's jobs: ",(humans+i) -> fullname);
            scanf("%s",(humans+i) -> job);
        }
     
        return 0;
    }
  • 23-12-2022, 22:08:37
    #5
    yunusemre34 adlı üyeden alıntı: mesajı görüntüle
    Buyrun hocam birde şu algoritmamı deneyin
    #include <stdio.h>
    #include <stdlib.h>
     
    struct human {
        char fullname[30];
        char job[30];
    };
     
    int main()
    {
        int amount,i;
        
        printf("How many names will you enter? \n");
        scanf("%d",&amount);
        
        struct human *humans = (struct human*) malloc (amount *sizeof(struct human));
        
        for(i = 0; i < amount; ++i){
            printf("Please enter the fullname: ");
            scanf("%s", (humans+i) -> fullname);
            
            printf("Please enter the %s's jobs: ",(humans+i) -> fullname);
            scanf("%s",(humans+i) -> job);
        }
     
        return 0;
    }
    Cevabınız için teşekkürler hocam, fakat aynı hatayı almaya devam ediyorum. "How many names will you enter?" Değerini girdikten sonra ilk çıkan "Please enter the fullname" "Baran Kanat" Degerini girdiğimde art arda değer doldurmama izin vermeden bir diğer elemana geçiyor. Çıktıyı görsel olarak ekliyorum.
  • 23-12-2022, 22:15:10
    #6
    Baran_Knt adlı üyeden alıntı: mesajı görüntüle
    Cevabınız için teşekkürler hocam, fakat aynı hatayı almaya devam ediyorum. "How many names will you enter?" Değerini girdikten sonra ilk çıkan "Please enter the fullname" "Baran Kanat" Degerini girdiğimde art arda değer doldurmama izin vermeden bir diğer elemana geçiyor. Çıktıyı görsel olarak ekliyorum.
    Hangi compiler'i deniyorsunuz? Tamam olayı anladım boşluk bıraktığımız için bir sonraki ifadeye geçtiğimizi zannediyor compiler başka bir şey deniyorum hemen
  • 23-12-2022, 22:44:12
    #7
    yunusemre34 adlı üyeden alıntı: mesajı görüntüle
    Hangi compiler'i deniyorsunuz? Tamam olayı anladım boşluk bıraktığımız için bir sonraki ifadeye geçtiğimizi zannediyor compiler başka bir şey deniyorum hemen
    Code::blocks https://www.codeblocks.org/

    Başka bir derleyici kullanmam yasak üniversite bölüm hocası herkesin haklı olarak aynı derleyici kulanılmasını isteniyor.
  • 23-12-2022, 22:55:34
    #8
    Baran_Knt adlı üyeden alıntı: mesajı görüntüle
    Code::blocks https://www.codeblocks.org/

    Başka bir derleyici kullanmam yasak üniversite bölüm hocası herkesin haklı olarak aynı derleyici kulanılmasını isteniyor.
    Dostum olayı çözdüm baya araştırdım en doğru çalışan şurada yazdıklarım bir dener misin?
    #include <stdio.h>
    #include <stdlib.h>
      
    struct human {
        char fullname[30];
        char job[30];
    };
      
    int main()
    {
        int amount,i;
        
        printf("How many names will you enter? \n");
        scanf("%d",&amount);
        
        struct human *humans = (struct human*) malloc (amount *sizeof(struct human));
        
        for(i = 0; i < amount; ++i){
            printf("Please enter the fullname: ");
            scanf(" %30[^\n]", (humans+i) -> fullname);
            
            printf("Please enter the %s's jobs: ",(humans+i) -> fullname);
            scanf(" %30[^\n]", (humans+i) -> job);
        }
      
        return 0;
    }
  • 23-12-2022, 23:18:57
    #9
    yunusemre34 adlı üyeden alıntı: mesajı görüntüle
    Dostum olayı çözdüm baya araştırdım en doğru çalışan şurada yazdıklarım bir dener misin?
    #include <stdio.h>
    #include <stdlib.h>
      
    struct human {
        char fullname[30];
        char job[30];
    };
      
    int main()
    {
        int amount,i;
        
        printf("How many names will you enter? \n");
        scanf("%d",&amount);
        
        struct human *humans = (struct human*) malloc (amount *sizeof(struct human));
        
        for(i = 0; i < amount; ++i){
            printf("Please enter the fullname: ");
            scanf(" %30[^\n]", (humans+i) -> fullname);
            
            printf("Please enter the %s's jobs: ",(humans+i) -> fullname);
            scanf(" %30[^\n]", (humans+i) -> job);
        }
      
        return 0;
    }

    Hocam gerçekten çok çok teşekkür ederim çalıştı 🙏🙏🙏