Arama butonu
Bu konudaki kullanıcılar: 1 misafir
4
Cevap
471
Tıklama
0
Öne Çıkarma
C'de ufak bi soru
S
14 yıl (20 mesaj)
Onbaşı
Konu Sahibi

merhaba herkese...ben C öğrenmeye yeni başladım.Aldım elime kitabı açtım editörü ufak ufak yazmaya başladım..Aşağıdaki programı çalıştırdığımda ne yaptığını anladım ancak

printf("%s",satir %2?"<":">"); satırının açıklamasını öğrenmek istiyorum..İnternette araştırdım ama aydınlatıcı bilgi bulamadım.'<' ve'>' simgelerini altalta 10 defa yazan programda bunu %2? açıklayan olursa çok rahatlayacağım...Şimdiden tşkler...


#include<stdio.h>
int main()
{
int satir=10,sutun;

while(satir>=1){
sutun=1;

while(sutun<=10){
printf("%s",satir %2?"<":">");
++sutun;
}
--satir;
printf("\n");
}
system("PAUSE");
return 0;
}

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



P
14 yıl (1647 mesaj)
Binbaşı

satır %2 demek = satır ın 2 ye bölümünden kalan anlamını taşıyor.
printf("%s",satir %2?"<":">")
burdada satırın %2 ye bölümünden kalan 0 ise ? sonraki ifade,başka birşeyse : sonraki ifade çalışıyor.
yani bir tür if else durumunun kısaltılmışı anlamına geliyor burada "?" koşul belirtiyor.
%s de karakter dizisi olduğunu belirtiyor.
altalta yazmasını sağlayan da while döngüsü zaten onu biliyorsun sanırım.

for kullansa daha düzgün olurmuş bence while sevmiyorum

?doğru ise yapılması istenen koşul : yanlış ise yapılması istenen koşul;
Şeklinde kullanılıyor.Bu kodda ? kullanımına başka örnek.Girilen harflerdeki a,b ve i harfinden kaç tane olduğunu yazıyor.

#include <stdio.h> 
#include <stdlib.h>

int main(int argc, char *argv[])
{
char a[50];
printf("Kontrol edilecek kelimeyi girin:");
gets(a);
char *p;
int i,con,aa=0,bb=0,aa2=0,bb2=0,ii=0;
p=a;
for(i=0;p[i];i++)
{
printf("%c",p[i]);
con=p[i]=='a' ? aa++ : 0 ;
con=p[i]=='B' ? bb++ : 0 ;
con=p[i]=='A' ? aa++ : 0 ;
con=p[i]=='b' ? bb++ : 0 ;
con=p[i]=='i' ? ii++ : 0 ;
}
printf("\n%d tane a var",aa);
printf("\n%d tane b var",bb);
printf("\n%d tane i var \n",ii);
system("PAUSE");
return 0;
}






< Bu mesaj bu kişi tarafından değiştirildi procaptain -- 5 Ağustos 2011; 16:17:30 >
Bu mesaja 1 cevap geldi.
S
14 yıl (20 mesaj)
Onbaşı
Konu Sahibi

yorumun için tşkler.bende %2? i apayrı bir terim sanmıştım.modla alakalıymış..dikkatimi iyice verseymişim anlayacakmışım..C'yi çevremdeki herkes çok zor diye nitelendirdiği için bende kendimi kasıyorum.C ile yeni tanıştığımdan...Ayrıca while'ı bende sevmiyorum.onun yerine if yada for'u kullansak olur değilmi?Aman aman kullanılması gereken yada bnm dikkat etmem gereken yerler varmı?


Bu mesaja 1 cevap geldi.
P
14 yıl (1647 mesaj)
Binbaşı

Çok iyi derecede bilmiyorum, bende 1 aydır falan ilgileniyorum C ile bence mutlaka kullanılması gereken yer yok for daha kullanışlı :)


Bu mesaja 1 cevap geldi.
M
14 yıl (3319 mesaj)
Yarbay

Her while bir for, her for bir while şeklinde yazılabilir



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.