Forumları Okundu Yap |
![]() |
#1 |
KOD
------------------------------------------------------------ #include <stdio.h> main() { int i; int defa; char char1; int sayi1; Printf("Kac defa islem yapmak istiyorsunuz? :"); scanf("%d",defa); for(i=defa,i>0,i--) { sayi1=0; sayi2=0; int sonuc; Printf("Carpma icin c , toplama icin t, cikarma icin f , bolme icin b \n"); scanf("%c",char1); if(char1=='c') { printf("Sayi1 i giriniz :"); scanf("%d",sayi1); printf("Sayi2 i giriniz :"); scanf("%d",sayi2); sonuc=sayi1*sayi2; printf("Sonuc= %d",sonuc); } if(char1=='t') { printf("Sayi1 i giriniz :"); scanf("%d",sayi1); printf("Sayi2 i giriniz :"); scanf("%d",sayi2); sonuc=sayi1+sayi2; printf("Sonuc= %d",sonuc); } if(char1=='f'); { printf("Sayi1 i giriniz(sayi1>sayi2) :"); scanf("%d",sayi1); printf("Sayi2 i giriniz :"); scanf("%d",sayi2); sonuc=sayi1-sayi2; printf("Sonuc= %d",sonuc); } if(char1=='b') { printf("Sayi1 i giriniz(sayi1>sayi2) :"); scanf("%d",sayi1); printf("Sayi2 i giriniz :"); scanf("%d",sayi2); sonuc=sayi1/sayi2; printf("Sonuc= %d",sonuc); } } } ----------------------------------------------------------------- Ya kardeşlerim bu kodlarda ne soun var ki? 10. satırda for deyiminde hata veriyor.Yardımcı olursanız sevinirim. (ÇOk başlık açtık ama Modlar affetsin artık...) ![]() ![]() ![]() ![]() |
|
![]() |
![]() |
#2 |
for( ; ; )
noktalı virgul koy... |
|
![]() |
![]() |
#3 |
scanf kullanımın yanlış
scanf("%d",&değişken); printf te aynı şekilde bide mainin başına void vs. koyarsan her tür compilerda compile edebilirsin Mesajı son düzenleyen haldunuraz ( 05-05-04 - 11:29 ) |
|
![]() |
![]() |
#4 |
scanf kullanimi dogru, hoppala' nin yazdigi gibi hata noktali virgülde
|
|
![]() |
![]() |
#5 |
another user kardeşim
önce şu konuya http://********.com/forumyeni/showthread.php?t=7978 ardındanda bir c kitabı açıp bakmanı öneririm... ![]() buda kodun çalışan hali #include <stdio.h> void main() { int i; int defa; char char1; int sayi1,sayi2; int sonuc; printf("Kac defa islem yapmak istiyorsunuz? :"); scanf("%d",&defa); for(i=0;i=defa;i++) { sayi1=0,sayi2=0; printf("Carpma icin c , toplama icin t, cikarma icin f , bolme icin b \n"); scanf("%c",&char1); if(char1=='c') { printf("Sayi1 i giriniz :"); scanf("%i",&sayi1); printf("Sayi2 i giriniz :"); scanf("%i",&sayi2); sonuc=(sayi1*sayi2); printf("Sonuc= %i\n",sonuc); } if(char1=='t') { printf("Sayi1 i giriniz :"); scanf("%i",&sayi1); printf("Sayi2 i giriniz :"); scanf("%i",&sayi2); sonuc=sayi1+sayi2; printf("Sonuc= %i\n",sonuc); } if(char1=='f') { printf("Sayi1 i giriniz(sayi1>sayi2) :"); scanf("%i",&sayi1); printf("Sayi2 i giriniz :"); scanf("%i",&sayi2); sonuc=sayi1-sayi2; printf("Sonuc= %i\n",sonuc); } if(char1=='b') { printf("Sayi1 i giriniz(sayi1>sayi2) :"); scanf("%i",&sayi1); printf("Sayi2 i giriniz :"); scanf("%i",&sayi2); sonuc=sayi1/sayi2; printf("Sonuc= %i\n",sonuc); } } } Mesajı son düzenleyen haldunuraz ( 05-05-04 - 12:31 ) |
|
![]() |
![]() |
#6 |
Evet hoş.Ben bir inceleyeyim yazdığını
.Dediğin gibi doğru çalışıyor.Benimki sapıkça şeyler yapıyordu.Böle uçuyo kaçıyo çıkarma yapıyo sonra printf yapıyo.Ama seninki doğru .Saol. ![]() ![]() |
|
![]() |
![]() |
#7 |
Benim buradaki hatam nedir?
Bir de senin yazdığın for nasıl çalışıyor? Benim öğrendiğim (i==defa;i>0;i--) olunca i>0 yanlış olana kadar devam ediyor.Yanlış olduğunda döngüyü bitiriyor.Ama seninkinde (i=0;i=defa;i++) nasıl çalışıyor?Benimkine göre i=defa eşitliği yanlış olana kadar devam etmesi gerekmiyor mu?burada i=defa direk yanlış olmaz mı? anlamadım ben galiba ![]() Sen bir açıkla be üstad? ![]() |
|
![]() |
![]() |
#8 |
Ha evet.Senin programın biraz istediğim gibi değil.Çünkü seninki sonsuza kadar gidiyor.Benim istediğim döngünün bitmesi.Ama seninkinde 2 defa yapmak istiyorumda desen sabaha kadar toplayıp duruyor.(yada çıkarıyor,bölüyor,kafa atıyor vır vır vır da vır vır...) ??????????
|
|
![]() |
![]() |
#9 |
programın son halinde gordugum kadarıyla 2 hata var.
oncelikle; for(i=0;i=defa;i++) da, i!=defa demeniz lazım. yoksa sonsuz bir döngü oluşur ve program siz control^c veya alt^f4 yapana kadar durmaz. ikincisi; bu program bolmeyi yanlış yapar. programın output olarak double(float) vermesi lazım. yani bolme icin sonuc un double cinsinden tanımlanıp, sonuc=sayi1/sayi2; ifadesinin de sonuc=(double)sayi1/sayi2; olup printf("%f", sonuc); la bastırılması gerekir. 5/4 = 1 yapar yukardaki program ama dogrusu 5/4 = 1.25 dir. Mesajı son düzenleyen HoPPaLa0101 ( 05-05-04 - 17:47 ) |
|
![]() |
![]() |
#10 |
haldurunaz, sen mesajini editlemeden önce orda scanf("d", °isken) yaziyodu
![]() ![]() scanf("%d",defa); ok onunda hatasini gördüm (ilk baktigimda gözüme carpmamisti bile) senin eksik yazdigini onun eksik yazdigiyla birlestirirsek dogru fonksiyon kullanimi ortaya cikar ![]() ![]() bu arada hoppola'dan gene kacmamis ... i yerine d yazarsa olur ... float'a gerek yok bence Mesajı son düzenleyen anotherUSER ( 05-05-04 - 18:12 ) |
|
![]() |
![]() |
#11 |
Arkadaslar burası herkesin baskasının hatasını bulma yeri olmus. Herkes en az bir doğru söylemiş ama hiçkimse baskasının doğrusunu kabul etmiyo
|
|
![]() |
![]() |
#12 |
iyide zaten konunun basligi hatanin nerde oldugu degilmi? Bence kisisel saldiri olmadii sürece (ve burda ben böyle bi durum görmedim) sorun yok. Forum'un anlami bence burda soru + cevap. Simdi cevabi verende hata yaparsa ve baska ücüncü bir kisi bu hatayi belirtirse bu konuyu okuyan herkes kazanmis olur
![]() |
|
![]() |
![]() |
#13 |
another user kardeş float a gerek yok demişsin ama float(double) sız program dogru calısmaz. acıklamasını yapmıştım onceki yazıda.
|
|
![]() |
![]() |
#14 |
Bu Program floatsız olmaz
for komutunuda for(i=0;i<defa;i++) şeklinde ayarladım. |
|
![]() |
![]() |
#15 |
Ya ancak ben float u kullanamadım.Double diye tanıtıp.
sonuc=(double)sayi1/sayi2; yapıyorum ancak bu defa her işlemin sonucuna sıfır veriyor. Nedir bunun çıkar yolu? |
|
![]() |
![]() |
#16 |
suanki kodu pastelesene bi,
|
|
![]() |
![]() |
#17 |
0 vermesi icin bir neden yok, printf de %d falan demiyosundur umarım. %f olcak.
|
|
![]() |
![]() |
#18 |
bayanlar baylar vediğim kodu compile ettim sonsuz döngü vs. gb sorunlar yok
ayrıca for içindeki i=o;i=defa;i++ nın anlamı i yi sıfırdan defaya eşit olana dek arttır dolayısıyla program ilk scanf inin aldığı değere kadar i yi arttıracak yani sorun yok.... *************** int i; int defa; char char1; int sayi1,sayi2; float sonuc; if(char1=='b') { printf("Sayi1 i giriniz(sayi1>sayi2) :"); scanf("%i",&sayi1); printf("Sayi2 i giriniz :"); scanf("%i",&sayi2); sonuc=sayi1/sayi2; printf("Sonuc= %f\n",sonuc); } bu şewkilde düzeltirseniz hiç bir sorun kalmaz..... Mesajı son düzenleyen haldunuraz ( 07-05-04 - 19:29 ) |
|
![]() |
![]() |
#19 |
haldunuraz for(i=0;i=defa;i++) dersen sonsuz döngüye girer compilera gerek yok. i=defa her zaman true doner cunku.
onun yerine for(;defa;defa--) yazabilirsin dogru calısması icin. ikinci olarak da sonuc u float olarak declare etmen yetmez, sonuc=sayi1/sayi2; yerine sonuc=(float)sayi1/sayi2; demen gerek. kolay gelsin. |
|
![]() |
![]() |
#20 |
gelin kodu kafamızdan çalıştıralım da sorun çözülsün
printf("Kac defa islem yapmak istiyorsunuz? :"); sorusu geldi 5 girdik scanf("%d",&defa); defa=5 oldu. for(i=0;i=defa;i++) dedik i 0 dan defaya kadar ki defa da 5 yani i=dan i=5'e kadar iye bir ekleyerek devam et. demiş olduk yani program i değerini 5 'e getirene kadar her seferinde sizden bir işlem seçmenizi isteyecek.... umarım yeterli bir açıklamadır. bir compilerda derleyip çalıştırmanızı öneririm. hatta isterseniz çalıştırırken wath ekleyip değerleri kontrol edebilir ve ya debug yapabilirsiniz... |
|
![]() |
Cevapla |
Konu Araçları | |
|
|