|
|||||||
| ||
![]() |
|
|
Seçenekler | Arama | Stil |
![]() c++ bi sorum olcak (scanf harf) | ||||||||||
|
(#1)
|
||||||||||
|
[10]Yeni Üye
![]() ![]() ![]() ![]() ![]() ![]() >Mesaj Sayısı: 497
>Açtığı Konu: 18
Level: 20 [ ![]() ![]() ![]() ]Paylaşım: 49 / 490 Üyelik tarihi: Apr 2007
Kullanıcı No: 2123
Nerden: Konya
Rep Puani: 419
Rep Derecesi :
![]() ![]() ![]() ![]() ![]() |
Arkadaşlar bi 4 işlem yapabilen hesap makinesi yazdım bitince de tekrar denemek istermisiniz diye while döngüsü oluşturdum while döngüsünün olabilmesi için sayı yani örneğin 1 enter yapınca tekrar hesap makinesi baştan başlıyor. Ben bunu harf olarak mesela e ye basınca tekrar olmasını istiyorum sayı için:
ilk başta do sonda da scanf("%d",&a); }while(a==1); return 0; } tabi int e "a" yı da tanımladım çalıştı veriyim kodu: Kod:
/* Toplama cıkarma bölme çarpma işlemleri http://mpfl9c.awardspace.com */
#include<stdio.h>
#include<conio.h>
#include<iostream>
int main()
{
printf("mpfl9c.awardspace.com\n\n");
int sayi1, sayi2, toplama, cikarma, carpma, bolme, a;
do
{
printf("\nİlk sayiyi giriniz:");
scanf("%d",&sayi1);
printf("\nİkinci sayiyi giriniz:");
scanf("%d",&sayi2);
toplama=sayi1+sayi2;
cikarma=sayi1-sayi2;
carpma=sayi1*sayi2;
bolme=sayi1/sayi2;
printf("\nToplama sonucu %d'dir",toplama);
printf("\nCikarma sonucu %d'dir",cikarma);
printf("\nCarpma sonucu %d'dir",carpma);
printf("\nBolme sonucu %d'dir",bolme);
printf("\n\nTekrar Denemek Ister misiniz?\n\nEvet => 1\nHayir => 2\n");
scanf("%d",&a);
}while(a==1);
return 0;
}
Şimdi ben Tekrar denemek ister misiniz evet > e hayır > h olmasını istiyorum yazdım fakat while==e de hata buluyor tanımlamadığımı söylüyor. İlk başta do olcak mı bilmiyorum. Sonda da scanf("%s",&a); }while(a==e); return 0; } tabi char a "a" yı tanımladım kodu veriyim: Kod:
/* Toplama cıkarma bölme çarpma işlemleri http://mpfl9c.awardspace.com */
#include<stdio.h>
#include<conio.h>
#include<iostream>
int main()
{
printf("mpfl9c.awardspace.com\n\n");
int sayi1, sayi2, toplama, cikarma, carpma, bolme;
char a;
{
printf("\nİlk sayiyi giriniz:");
scanf("%d",&sayi1);
printf("\nİkinci sayiyi giriniz:");
scanf("%d",&sayi2);
toplama=sayi1+sayi2;
cikarma=sayi1-sayi2;
carpma=sayi1*sayi2;
bolme=sayi1/sayi2;
printf("\nToplama sonucu %d'dir",toplama);
printf("\nCikarma sonucu %d'dir",cikarma);
printf("\nCarpma sonucu %d'dir",carpma);
printf("\nBolme sonucu %d'dir",bolme);
printf("\n\nTekrar Denemek Ister misiniz?\n\nEvet => e\nHayir => h\n");
scanf("%s",&a);
}while(a==e);
return 0;
}
Yani demek istediğim en son verdiğim üstteki kodu düzeltebilirmisiniz? while a==e tanımlanmamış gibi bişey diyo bana mantıksız geldi yapamadım. İlk baştaki kod çalışyıo ama ben scanf rakam değil scanf harf istiyom yapamadım??? |
|||||||||
|
||||||||||
|
|
![]() | ||||||||||
|
(#2)
|
||||||||||
|
[10]Yeni Üye
![]() ![]() ![]() ![]() ![]() ![]() >Mesaj Sayısı: 497
>Açtığı Konu: 18
Level: 20 [ ![]() ![]() ![]() ]Paylaşım: 49 / 490 Üyelik tarihi: Apr 2007
Kullanıcı No: 2123
Nerden: Konya
Rep Puani: 419
Rep Derecesi :
![]() ![]() ![]() ![]() ![]() |
Hatayı bulan yok mu??
|
|||||||||
|
||||||||||
![]() | ||||||||||
|
(#3)
|
||||||||||
|
[10]Yeni Üye
![]() ![]() ![]() >Mesaj Sayısı: 34
>Açtığı Konu: 1
Level: 4 [ ![]() ![]() ]Paylaşım: 0 / 89 Üyelik tarihi: Apr 2007
Kullanıcı No: 9862
Rep Puani: 100
Rep Derecesi :
![]() ![]() |
while(a=='e') şeklinde olacak çünkü e dediğin zaman derleyici onu bir değişken zannediyor ve bu değişkenin tanımlı olup olmadığına bakıyor daha önce tanımlı olmadığı için tanımadığını söylüyor.
Halbuki 'e' şeklinde yazıldığı zaman bunun anlamı e karakeridir. |
|||||||||
|
||||||||||
![]() | ||||||||||
|
(#4)
|
||||||||||
|
[10]Yeni Üye
![]() ![]() ![]() >Mesaj Sayısı: 34
>Açtığı Konu: 1
Level: 4 [ ![]() ![]() ]Paylaşım: 0 / 89 Üyelik tarihi: Apr 2007
Kullanıcı No: 9862
Rep Puani: 100
Rep Derecesi :
![]() ![]() |
unutmuşum bide son hali şu şekilde olursa çalışır derlemiyorum sadece senin kodunu değiştirdim .
/* Toplama cıkarma bölme çarpma işlemleri [Linkleri Sadece Üyeler Görebilir..] */ #include<stdio.h> #include<conio.h> #include<iostream> int main() { printf("mpfl9c.awardspace.com\n\n"); int sayi1, sayi2, toplama, cikarma, carpma, bolme; char a; { printf("\nİlk sayiyi giriniz:"); scanf("%d",&sayi1); printf("\nİkinci sayiyi giriniz:"); scanf("%d",&sayi2); toplama=sayi1+sayi2; cikarma=sayi1-sayi2; carpma=sayi1*sayi2; bolme=sayi1/sayi2; printf("\nToplama sonucu %d'dir",toplama); printf("\nCikarma sonucu %d'dir",cikarma); printf("\nCarpma sonucu %d'dir",carpma); printf("\nBolme sonucu %d'dir",bolme); printf("\n\nTekrar Denemek Ister misiniz?\n\nEvet => e\nHayir => h\n"); scanf("%c",&a); }while(a=='e'); return 0; } |
|||||||||
|
||||||||||
![]() | ||||||||||
|
(#5)
|
||||||||||
|
[10]Yeni Üye
![]() ![]() ![]() >Mesaj Sayısı: 34
>Açtığı Konu: 1
Level: 4 [ ![]() ![]() ]Paylaşım: 0 / 89 Üyelik tarihi: Apr 2007
Kullanıcı No: 9862
Rep Puani: 100
Rep Derecesi :
![]() ![]() |
bide bence pek do.... while döngüsü kullanma çünkü bu döngü kesin bir kez çalışıyor. bazı programlarda döngünün belli zamanlarda hiç çalışmasını istemeyeceksin bu yüzden bence while yada for kullan alışkanlık yapsın diye çünkü insan kod yazarken alıştığı şekilde yazıyor....... kolya gelsin iyi çalışmalar
|
|||||||||
|
||||||||||
![]() | ||||||||||
|
(#6)
|
||||||||||
|
[10]Yeni Üye
![]() ![]() ![]() ![]() ![]() ![]() >Mesaj Sayısı: 497
>Açtığı Konu: 18
Level: 20 [ ![]() ![]() ![]() ]Paylaşım: 49 / 490 Üyelik tarihi: Apr 2007
Kullanıcı No: 2123
Nerden: Konya
Rep Puani: 419
Rep Derecesi :
![]() ![]() ![]() ![]() ![]() |
Derledim fakat ekrandan hemen kayboluyor tekrar denemek istermisin yazısı gelmeden bitiyor. scanf("%c" almışsın ben s ye de çevirdim yine olmadı yine aynı getch ekledim bazı yerlere yine olmadı
Ama ilk sayıyı giriniz deki yere e yazarsam while döngüsü işliyor nasıl olcak anlamadım? Ama yine uğraştığın için teşekkürler |
|||||||||
|
||||||||||
![]() | ||||||||||
|
(#7)
|
||||||||||
|
[10]Yeni Üye
![]() ![]() ![]() >Mesaj Sayısı: 34
>Açtığı Konu: 1
Level: 4 [ ![]() ![]() ]Paylaşım: 0 / 89 Üyelik tarihi: Apr 2007
Kullanıcı No: 9862
Rep Puani: 100
Rep Derecesi :
![]() ![]() |
kodunu şu şekilde değiştirdim çalışıyor. en sonda scanf kullanmadım kulladığımda
döngüden çıknca hata veriyordu onun yerine C++ 'ın cin fonksiyonunu kullandım #include<stdio.h> #include<conio.h> #include<iostream> int main() { printf("mpfl9c.awardspace.com\n\n"); int sayi1, sayi2, toplama, cikarma, carpma, bolme; char a='e'; char b; do { printf("\nİlk sayiyi giriniz:"); scanf("%d",&sayi1); printf("\nİkinci sayiyi giriniz:"); scanf("%d",&sayi2); toplama=sayi1+sayi2; cikarma=sayi1-sayi2; carpma=sayi1*sayi2; bolme=sayi1/sayi2; printf("\nToplama sonucu %d'dir",toplama); printf("\nCikarma sonucu %d'dir",cikarma); printf("\nCarpma sonucu %d'dir",carpma); printf("\nBolme sonucu %d'dir",bolme); printf("\n\nTekrar Denemek Ister misiniz?\n\nEvet => e\nHayir => h\n"); std::cin>>a; }while(a=='e'); getch(); return 0; } |
|||||||||
|
||||||||||
![]() | ||||||||||
|
(#8)
|
||||||||||
|
[10]Yeni Üye
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() >Mesaj Sayısı: 764
>Açtığı Konu: 126
Level: 24 [ ]Paylaşım: 623 / 778 Üyelik tarihi: Jun 2008
Kullanıcı No: 322805
Nerden: SıFıR6
Rep Puani: 766
Rep Derecesi :
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
bu nedır yae
![]() |
|||||||||
|
||||||||||
![]() | ||||||||||
|
(#9)
|
||||||||||
|
[10]Yeni Üye
![]() ![]() ![]() ![]() ![]() ![]() >Mesaj Sayısı: 497
>Açtığı Konu: 18
Level: 20 [ ![]() ![]() ![]() ]Paylaşım: 49 / 490 Üyelik tarihi: Apr 2007
Kullanıcı No: 2123
Nerden: Konya
Rep Puani: 419
Rep Derecesi :
![]() ![]() ![]() ![]() ![]() |
çok teşekkürler böyle oluyor demek ben de scanf ile baya bi uğraştım galiba öyle olmuyor
+rep |
|||||||||
|
||||||||||
![]() | ||||||||||
|
(#10)
|
||||||||||
|
[10]Yeni Üye
![]() ![]() >Mesaj Sayısı: 2
>Açtığı Konu: 0
Level: 1 [ ]Paylaşım: 0 / 0 Üyelik tarihi: Jun 2008
Kullanıcı No: 325379
Yaş: 27
Rep Puani: 100
Rep Derecesi :
![]() ![]() |
evet son kod çalışıyor
|
|||||||||
|
||||||||||
![]() |
| Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| Seçenekler | Arama |
| Stil | |
|