Çözüldü C ile tablo yapımı

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

Garip Gamerr

Hectopat
Katılım
28 Haziran 2020
Mesajlar
224
Çözümler
1
Ceng 1.sınıf öğrencisiyim. Yeni yeni başladım programlamaya. Hocamız ödev verdi ama son kısmını nasıl yapacağımı bulamadım. Ödev temel olarak kullanıcı-isim-yaş tablosu. Şu şekilde açıklayayım:
Kullanıcı isim soy isim yaş.
1 mahmut tuncer 35.
Gibi olmalı. Yardımcı olabilir misiniz?

Ekran görüntüsü 2024-10-24 171602.png


Konuyu paylaşırken otomatik bozuyor tabloyu ama siz anladınız alt alta gelecek şekilde olmalı.
 
Çözüm
C:
#include <stdio.h>

struct kullanici {
    char isim[20];
    char soyisim[20];
    int yas;
};

int main(int argc, char *argv[]) {
    struct kullanici k1;
    struct kullanici k2;
   
    printf("Kullanici 1 ismini giriniz:\n");
    scanf("%s", &k1.isim);
    printf("Kullanici 1 soyismini giriniz:\n");
    scanf("%s", &k1.soyisim);
    printf("Kullanici 1 yasini giriniz:\n");
    scanf("%d", &k1.yas);
   
    printf("Kullanici 2 ismini giriniz:\n");
    scanf("%s", &k2.isim);
    printf("Kullanici 2 soyismini giriniz:\n");
    scanf("%s", &k2.soyisim);
    printf("Kullanici 2 yasini giriniz:\n");
    scanf("%d", &k2.yas);
   
    printf("1 %s %s %d\n", k1.isim, k1.soyisim, k1.yas);
    printf("2 %s %s %d\n", k2.isim, k2.soyisim, k2.yas);
   
    return 0;
}

Cikti:
Bash:
1 Mahmut Tuncer 35
2 Technopat Sosyal 14

Boyle bir sey istiyorsunuz sanirim.
C:
#include <stdio.h>

struct kullanici {
    char isim[20];
    char soyisim[20];
    int yas;
};

int main(int argc, char *argv[]) {
    struct kullanici k1;
    struct kullanici k2;
   
    printf("Kullanici 1 ismini giriniz:\n");
    scanf("%s", &k1.isim);
    printf("Kullanici 1 soyismini giriniz:\n");
    scanf("%s", &k1.soyisim);
    printf("Kullanici 1 yasini giriniz:\n");
    scanf("%d", &k1.yas);
   
    printf("Kullanici 2 ismini giriniz:\n");
    scanf("%s", &k2.isim);
    printf("Kullanici 2 soyismini giriniz:\n");
    scanf("%s", &k2.soyisim);
    printf("Kullanici 2 yasini giriniz:\n");
    scanf("%d", &k2.yas);
   
    printf("1 %s %s %d\n", k1.isim, k1.soyisim, k1.yas);
    printf("2 %s %s %d\n", k2.isim, k2.soyisim, k2.yas);
   
    return 0;
}

Cikti:
Bash:
1 Mahmut Tuncer 35
2 Technopat Sosyal 14

Boyle bir sey istiyorsunuz sanirim.
 
Çözüm
Yardımcı olabilir misiniz?

Tam olarak ne yapmak istediğini yazmamışsın.

Koduna bakarsak;

Bir kişi için;

Kod:
char kullanici1;

şeklinde bir değişkenin var.
Ama, gördüğüm kadarıyla, bu değişkene hem isim, hem soyisim hem de yaş değerlerini okumak istiyorsun, bu olmaz.

Yukarıda, @kaan.w, struct kullanan temiz bir kod paylaşmış, onu iyice anlamaya çalışın.

array (dizi) olacak mı ?
Yani, bu kişilerin sayısı sabit mi, yoksa orjinal kodundaki gibi 3 kişi için mi ?
 
C:
#include <stdio.h>

struct kullanici {
 char isim[20];
 char soyisim[20];
 int yas;
};

int main(int argc, char *argv[]) {
 struct kullanici k1;
 struct kullanici k2;

 printf("Kullanici 1 ismini giriniz:\n");
 scanf("%s", &k1.isim);
 printf("Kullanici 1 soyismini giriniz:\n");
 scanf("%s", &k1.soyisim);
 printf("Kullanici 1 yasini giriniz:\n");
 scanf("%d", &k1.yas);

 printf("Kullanici 2 ismini giriniz:\n");
 scanf("%s", &k2.isim);
 printf("Kullanici 2 soyismini giriniz:\n");
 scanf("%s", &k2.soyisim);
 printf("Kullanici 2 yasini giriniz:\n");
 scanf("%d", &k2.yas);

 printf("1 %s %s %d\n", k1.isim, k1.soyisim, k1.yas);
 printf("2 %s %s %d\n", k2.isim, k2.soyisim, k2.yas);

 return 0;
}

Cikti:
Bash:
1 Mahmut Tuncer 35.
2 Technopat Sosyal 14

Boyle bir şey istiyorsunuz sanirim.

Çok çok teşekkür ederim. Tam olarak buydu.

Tam olarak ne yapmak istediğini yazmamışsın.

Koduna bakarsak;

Bir kişi için;

Kod:
char kullanici1;

Şeklinde bir değişkenin var.
Ama, gördüğüm kadarıyla, bu değişkene hem isim, hem soy isim hem de yaş değerlerini okumak istiyorsun, bu olmaz.

Yukarıda, @kaan.w, struct kullanan temiz bir kod paylaşmış, onu iyice anlamaya çalışın.

array (dizi) olacak mı?
Yani, bu kişilerin sayısı sabit mi, yoksa orijinal kodundaki gibi 3 kişi için mi?

3 kişi için.

C:
#include <stdio.h>

struct kullanici {
    char isim[20];
    char soyisim[20];
    int yas;
};

int main(int argc, char *argv[]) {
    struct kullanici k1;
    struct kullanici k2;
  
    printf("Kullanici 1 ismini giriniz:\n");
    scanf("%s", &k1.isim);
    printf("Kullanici 1 soyismini giriniz:\n");
    scanf("%s", &k1.soyisim);
    printf("Kullanici 1 yasini giriniz:\n");
    scanf("%d", &k1.yas);
  
    printf("Kullanici 2 ismini giriniz:\n");
    scanf("%s", &k2.isim);
    printf("Kullanici 2 soyismini giriniz:\n");
    scanf("%s", &k2.soyisim);
    printf("Kullanici 2 yasini giriniz:\n");
    scanf("%d", &k2.yas);
  
    printf("1 %s %s %d\n", k1.isim, k1.soyisim, k1.yas);
    printf("2 %s %s %d\n", k2.isim, k2.soyisim, k2.yas);
  
    return 0;
}

Cikti:
Bash:
1 Mahmut Tuncer 35
2 Technopat Sosyal 14

Boyle bir sey istiyorsunuz sanirim.
hocam pardon ben tablo şeklinde yapmak istiyorum lakin isim uzunluklarından dolayı kayma yaşıyorum onu nasıl halledebilirim?
 

Dosya Ekleri

  • Ekran görüntüsü 2024-10-24 191153.png
    Ekran görüntüsü 2024-10-24 191153.png
    140,2 KB · Görüntüleme: 31
  • Ekran görüntüsü 2024-10-24 191409.png
    Ekran görüntüsü 2024-10-24 191409.png
    37,4 KB · Görüntüleme: 30
Son düzenleme:
Tocam pardon ben tablo şeklinde yapmak istiyorum lakin isim uzunluklarından dolayı kayma yaşıyorum onu nasıl halledebilirim?
Bu kısmı:
C:
printf("1 %s %s %d\n", k1.isim, k1.soyisim, k1.yas);
printf("2 %s %s %d\n", k2.isim, k2.soyisim, k2.yas);

Bununla değiştirin:
C:
printf("1 %-20s%-20s%d\n", k1.isim, k1.soyisim, k1.yas);
printf("2 %-20s%-20s%d\n", k2.isim, k2.soyisim, k2.yas);

Çıktı:
Bash:
1 Mahmut              Tuncer              35
2 Technopat           Sosyal              15
 
Bu kısmı:
C:
printf("1 %s %s %d\n", k1.isim, k1.soyisim, k1.yas);
printf("2 %s %s %d\n", k2.isim, k2.soyisim, k2.yas);

Bununla değiştirin:
C:
printf("1 %-20s%-20s%d\n", k1.isim, k1.soyisim, k1.yas);
printf("2 %-20s%-20s%d\n", k2.isim, k2.soyisim, k2.yas);

Çıktı:
Bash:
1 Mahmut              Tuncer              35
2 Technopat           Sosyal              15
çok teşekkür ediyorum.
 

Technopat Haberler

Geri
Yukarı