Şimdi Ara

Kullanıcıdan alınan sayı kadar değişken oluşturma

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir (1 Mobil) - 1 Masaüstü1 Mobil
5 sn
13
Cevap
0
Favori
1.363
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Amaç; klavyeden girilen bir integer değer kadar değişken oluşturmaya çalışıyorum. Örneğin

    ......... 
    ..........
    ........
    ......
    int sayi;
    printf("bir sayi girin")
    scanf("%d", &sayi);

    //code here


    misal sayi değişkenini 4 girdiyseniz //code here yazan kısımdaki kod öyle olmalı ki herhangi bir türden 4 tane değişken oluşturabilsin. tabiki oluşturulan değişken isimlerini bilmem lazım.

    Aslında asıl program alttaki. Amacı ise kullanıcıdan ailede kaç kişi varsa onların adını soyadını mesleğini ve yaşının bilgisini alarak ekrana basmak. For döngüsünün sonuna printf ile yazdırabiliyorum fakat benim istediğim tüm bilgileri aynı anda basması. for döngüsünün sonuna printf i komutunu koyunca bilgiler parça parça yazıyor.Yardım edebilecekler varsa bir el atsın. Aranızda illaki çözümü bilen birileri vardır.

    #include <stdio.h> 
    #include <stdlib.h>
    struct kisi {
    char name[15];
    char surname[25];
    char job[30];
    int age;
    };


    int main()
    {
    int hane;
    printf("Aileniz sizinle birlikte kac hanedir ?", hane);
    scanf("%d", &hane);
    struct kisi a;

    for(int i=0; i<hane; ++i) {

    printf("%d. uyenin adini girin\t", i+1);
    scanf("%s", &a.name);
    printf("%d. uyenin soyadini girin\t", i+1);
    scanf("%s", &a.surname);
    printf("%d. uyenin meslegini girin\t", i+1);
    scanf("%s", &a.job);
    printf("%d. uyenin yasini girin\t", i+1);
    scanf("%d", &a.age);
    }


    return 0;
    }



    < Bu mesaj bu kişi tarafından değiştirildi Sofiman -- 30 Temmuz 2014; 23:37:07 >







  • #include <stdio.h> 
    #include <stdlib.h>
    struct kisi {
    char name[15];
    char surname[25];
    char job[30];
    int age;
    void yazdir()
    {
    printf(
    "Adi:%s\n"
    "Soyadi:%s\n"
    "Isi:%s\n"
    "Yasi:%d\n\n",name,surname,job,age);

    }
    };


    int main()
    {
    int hane;
    printf("Aileniz sizinle birlikte kac hanedir ?");
    scanf("%d", &hane);
    struct kisi a[hane];

    for(int i=0; i<hane; ++i) {

    printf("%d. uyenin adini girin\t", i+1);
    scanf("%s", a[i].name);
    printf("%d. uyenin soyadini girin\t", i+1);
    scanf("%s", a[i].surname);
    printf("%d. uyenin meslegini girin\t", i+1);
    scanf("%s", a[i].job);
    printf("%d. uyenin yasini girin\t", i+1);
    scanf("%d", &a[i].age);
    }
    for(int i=0; i<hane; ++i) {
    printf("%d. uyenin bilgileri:\n",i+1);
    a[i].yazdir();
    }


    return 0;
    }



    < Bu mesaj bu kişi tarafından değiştirildi brk0001 -- 31 Temmuz 2014; 0:05:30 >




  • brk0001 B kullanıcısına yanıt
    hocam birkaç sorum olacak. anlamadım çünkü. struct oluşturduktan sonra void yazdır() fonksiyonunu nasıl tanımladığınızı ve kullandığınızı anlayamadım malesef. Birde anladığım kadarıyla siz yazdir() fonksiyonunu main dışında tanımlamadan direkt olarak struct içinde kullanmışsınız. bu mümkün müdür? demek istediğim struct içinde tanımlamadan önce fonksiyonu main dışında tanımlamak gerekmiyor mu?

    Hocam sorularım saçma gelebilir kusuruma bakma.
  • C deki struct yapısı c++ daki class yapısının başlangıcı.
    struct kişi de bir nesne tanımlayınca o nesnenin 4 tane özelliği bir tane de fonksiyonu oluyor.Hepsine de .(nokta) ile ulaşabiliyoruz.
    struct içindeki fonksiyonlar o structa tanımlanmış alanları(değişkenleri) kullanabilir.
    burada struct kişi de dizi tanımlandı.
    her dizi elemanı kendisine ait özellikleri yazdir fonksiyonu ile yazdirdi.
    c++ sınıf(class) konusuyla alakalı aslında.
    @



    < Bu mesaj bu kişi tarafından değiştirildi brk0001 -- 31 Temmuz 2014; 1:29:08 >
  • brk0001 B kullanıcısına yanıt
    yalnız hocam bu kodu çalıştırmayı denediniz mi. ilk olarak çalışmıyor. ikinci olarakta sanırım C de struct içine fonksiyon koyamıyoruz.
  • devc++ denemiştim çalışıyor



    < Bu mesaj bu kişi tarafından değiştirildi brk0001 -- 31 Temmuz 2014; 2:22:03 >
  • brk0001 B kullanıcısına yanıt
    Code blocks ta denedim hata verdi. İnternette struct içine fonk çağıramazsınız diyordu. Hocam ben bugün tekrar deneyeyim sonucu size bildiririm

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • Evet code blocks ta dediğiniz hatayı verdi.DevC++ da C++ özellikleri her programda kullanıldığı için sanırım izin veriyordu.
    yazdir ı normal bir fonksiyon olarak tanımlayıp şu şekilde yazdım Bu kod Code Blocks ta çalışıyor:
     
    #include <stdio.h>
    #include <stdlib.h>
    struct kisi {
    char name[15];
    char surname[25];
    char job[30];
    int age;

    };
    void yazdir(struct kisi a)
    {
    printf("Adi:%s\nSoyadi:%s\nIsi:%s\nYasi:%d\n\n",a.name,a.surname,a.job,a.age);

    }

    int main()
    {
    int hane,i;
    printf("Aileniz sizinle birlikte kac hanedir ?");
    scanf("%d", &hane);
    struct kisi a[hane];


    for( i=0; i<hane; ++i) {

    printf("%d. uyenin adini girin\t", i+1);
    scanf("%s", a[i].name);
    printf("%d. uyenin soyadini girin\t", i+1);
    scanf("%s", a[i].surname);
    printf("%d. uyenin meslegini girin\t", i+1);
    scanf("%s", a[i].job);
    printf("%d. uyenin yasini girin\t", i+1);
    scanf("%d", &a[i].age);
    }
    for( i=0; i<hane; ++i) {
    printf("%d. uyenin bilgileri:\n",i+1);
    yazdir(a[i]);
    }


    return 0;
    }






  • brk0001 B kullanıcısına yanıt
    hocam çok teşekkür ederim 2 gündür uğraşıyorsun, sağol tekrardan. Son olarak C++ ın imkanlarını kullanmak için proje oluştururken C++ ı seçip, kodları C ye göre yazsak bir sıkıntı olur mu. Code Blocks için söylüyorum.
  • Bilmiyorum denemedim ancak C++ imkanlarını kullanmak için c++ kodları kullanmak daha doğru olur diye düşünüyorum.Böylece kafa karışıklığı oluşmaz.
  • brk0001 B kullanıcısına yanıt
    şimdi baktım C++ da class içinde fonksiyon çağırabiliyorsun fakat C de bu mümkün değil.
  • neden dizi kullanmıyorsun?
  • Mr. Pink kullanıcısına yanıt
    Dizi kullanıyorum. 3 tane string ve struct tipinde bi dizi kullanıyorum. Bunun haricinde tüm olayı diziyle yaparsan resmen çöp kod olur. Yapmak istediğim şeyin kod bakımından pek esnetilebileceğini düşünmüyorum açıkçası.

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.