Şimdi Ara

Lütfen Yardım!! C Programlama

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
4
Cevap
0
Favori
566
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba arkadaşlar;

    1. sorum string.h kütüphanesini kullanmadan strcmp fonksiyonunun benzeri bir fonksiyon kodlama.

    2. sorum ekrandan atanacak kenar uzunluğuna göre * işareti kullanarak içi boş kare çizme.

    1. soru galiba 2 kelimeyi çıkarıp sıfıra eşitleme ama yapamadım :(
    2. sorununda içi boş olması nedeniyle program patladı.
    Lütfen yardım!!



  • strcmp() un nasıl kullanıldığını bilmen lazım önce. strcmp() a iki string gönderiyorsun, ilki büyükse pozitif bir sayı dönüyor, ikincisi büyükse negatif, stringler eşitse 0 dönüyor. Bu sayede eşit mi değil mi anlayabiliyorsun.
     

    #include <stdio.h>

    int strcmp2 (const char *s1, const char *s2)
    {
    //farkli olan ilk karaktere kadar veya farkli degillerse en sona kadar ilerliyoruz
    while (*s1 != '\0' && *s1 == *s2)
    {
    s1++;
    s2++;
    }

    /* farkli karakterleri birbirinden cikarip farkini donuyoruz
    * farkli degillerse ikisi de '\0' olmali, ikisi esitse farklari 0 dir. */
    return *s1 - *s2;
    }

    int main()
    {
    char s1[80], s2[80];

    while(1)
    {
    puts("\n1. stringi girin.");
    gets(s1);
    puts("\n2. stringi girin.");
    gets(s2);

    int sonuc = strcmp2(s1, s2);

    if(sonuc > 0)
    puts("\nSonuc: 1. string daha buyuk.\n");
    else if(sonuc < 0)
    puts("\nSonuc: 2. string daha buyuk.\n");
    else
    puts("\nSonuc: Stringler esit.\n");
    }

    return 0;
    }


    İkinci soruda da kenar uzunluğu ne olursa olsun, ekrana yazdırmak için şöyle bir yol izlenebilir:

    ilk satır için: kenar uzunluğu kadar *

    orta satırlar için:
    önce bir *
    sonra kenar uzunluğundan 2 eksik kadar boşluk
    sonra satırın sonuna bir * daha.

    son satır: kenar uzunluğu kadar *

    her satır sonuna ayrıca '\n' koyuyoruz.
     

    #include <stdio.h>

    int main()
    {
    int kenar, i, j;

    printf("Kenar uzunlugunu girin: ");
    scanf("%d", &kenar);

    //ilk satir
    for(j = 0; j < kenar; j++)
    {
    putchar('*');
    putchar(' ');
    }
    putchar('\n');

    //ici bos orta satirlar
    for(i = 2; i < kenar; i++)
    {
    putchar('*');
    putchar(' ');
    for(j = 2; j < kenar; j++)
    {
    putchar(' ');
    putchar(' ');
    }
    putchar('*');
    putchar('\n');
    }

    //son satir
    for(j = 0; j < kenar; j++)
    {
    putchar('*');
    putchar(' ');
    }

    return 0;
    }




  • teşekkürler..
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.