Eski 04-05-04, 20:13 #1
aRiTmEtİk aRiTmEtİk çevrimdışı
Question Kodlarımda hata(compile ederken acayip bişiler dedi)

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...)
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 04-05-04, 22:17 #2
HoPPaLa0101 HoPPaLa0101 çevrimdışı
Varsayılan Cvp: Kodlarımda hata(compile ederken acayip bişiler dedi)

for( ; ; )
noktalı virgul koy...
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 05-05-04, 00:16 #3
haldunuraz haldunuraz çevrimdışı
Varsayılan Cvp: Kodlarımda hata(compile ederken acayip bişiler dedi)

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 )
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 05-05-04, 09:08 #4
anotherUSER anotherUSER çevrimdışı
Varsayılan Cvp: Kodlarımda hata(compile ederken acayip bişiler dedi)

scanf kullanimi dogru, hoppala' nin yazdigi gibi hata noktali virgülde
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 05-05-04, 11:28 #5
haldunuraz haldunuraz çevrimdışı
Varsayılan Cvp: Kodlarımda hata(compile ederken acayip bişiler dedi)

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 )
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 05-05-04, 17:17 #6
aRiTmEtİk aRiTmEtİk çevrimdışı
Varsayılan Cvp: Kodlarımda hata(compile ederken acayip bişiler dedi)

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.
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 05-05-04, 17:23 #7
aRiTmEtİk aRiTmEtİk çevrimdışı
Varsayılan Cvp: Kodlarımda hata(compile ederken acayip bişiler dedi)

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?
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 05-05-04, 17:25 #8
aRiTmEtİk aRiTmEtİk çevrimdışı
Varsayılan Cvp: Kodlarımda hata(compile ederken acayip bişiler dedi)

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...) ??????????
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 05-05-04, 17:43 #9
HoPPaLa0101 HoPPaLa0101 çevrimdışı
Varsayılan Cvp: Kodlarımda hata(compile ederken acayip bişiler dedi)

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 )
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 05-05-04, 18:07 #10
anotherUSER anotherUSER çevrimdışı
Varsayılan Cvp: Kodlarımda hata(compile ederken acayip bişiler dedi)

haldurunaz, sen mesajini editlemeden önce orda scanf("d", &degisken) yaziyodu .... %d degil ...

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 .... ama farkindaysan derliyecinin verdigi hata o degil .....

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 )
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 05-05-04, 19:21 #11
rolicabi rolicabi çevrimdışı
Varsayılan Cvp: Kodlarımda hata(compile ederken acayip bişiler dedi)

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
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 05-05-04, 19:56 #12
anotherUSER anotherUSER çevrimdışı
Varsayılan Cvp: Kodlarımda hata(compile ederken acayip bişiler dedi)

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 ...
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 05-05-04, 21:42 #13
HoPPaLa0101 HoPPaLa0101 çevrimdışı
Varsayılan Cvp: Kodlarımda hata(compile ederken acayip bişiler dedi)

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.
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 06-05-04, 23:20 #14
aRiTmEtİk aRiTmEtİk çevrimdışı
Varsayılan Cvp: Kodlarımda hata(compile ederken acayip bişiler dedi)

Bu Program floatsız olmaz
for komutunuda
for(i=0;i<defa;i++)
şeklinde ayarladım.
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 06-05-04, 23:24 #15
aRiTmEtİk aRiTmEtİk çevrimdışı
Varsayılan Cvp: Kodlarımda hata(compile ederken acayip bişiler dedi)

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?
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 07-05-04, 08:16 #16
anotherUSER anotherUSER çevrimdışı
Varsayılan Cvp: Kodlarımda hata(compile ederken acayip bişiler dedi)

suanki kodu pastelesene bi,
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 07-05-04, 17:00 #17
HoPPaLa0101 HoPPaLa0101 çevrimdışı
Varsayılan Cvp: Kodlarımda hata(compile ederken acayip bişiler dedi)

0 vermesi icin bir neden yok, printf de %d falan demiyosundur umarım. %f olcak.
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 07-05-04, 19:24 #18
haldunuraz haldunuraz çevrimdışı
Varsayılan Cvp: Kodlarımda hata(compile ederken acayip bişiler dedi)

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 )
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 07-05-04, 22:31 #19
HoPPaLa0101 HoPPaLa0101 çevrimdışı
Varsayılan Cvp: Kodlarımda hata(compile ederken acayip bişiler dedi)

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.
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 08-05-04, 00:20 #20
haldunuraz haldunuraz çevrimdışı
Varsayılan Cvp: Kodlarımda hata(compile ederken acayip bişiler dedi)

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...
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Cevapla

Bu konunun kısa yolunu aşağıdaki sitelere ekleyebilirsiniz

Konu Araçları

Gönderme Kuralları
Yeni konu açamazsınız
Cevap yazamazsınız
Dosya gönderemezsiniz
Mesajlarınızı düzenleyemezsiniz

BB code is Açık
Smiley Açık
[IMG] kodu Açık
HTML kodu Kapalı



Tüm saatler GMT +3. Şuan saat: 02:39
(Türkiye için artık GMT +3 seçilmelidir.)

 
5651 sayılı yasaya göre forumumuzdaki mesajlardan doğabilecek her türlü sorumluluk yazan kullanıcılara aittir. Şikayet Mailimiz. İçerik, Yer Sağlayıcı Bilgilerimiz.