Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
2
Cevap
381
Tıklama
0
Öne Çıkarma
Lütfen Yardım!! C Programlama
M
10 yıl
Çavuş
Konu Sahibi

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!!



C
10 yıl
Yüzbaşı

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;
}


Bu mesaja 1 cevap geldi.
M
10 yıl
Çavuş
Konu Sahibi

teşekkürler..



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.