Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
4
Cevap
1078
Tıklama
0
Öne Çıkarma
C bilen biri yardım edebilir mi?
J
7 yıl (55 mesaj)
Çavuş
Konu Sahibi

Merhaba arkadaşlar yeni yeni yazılım öğreniyorum kendimce bir hesap makinesi yaptım sonsuz döngü ile fakat bir problemim var ilk sayı girişinin girilecek işlem seçildikten sonra girilip birdaha girilmemesini istiyorum. Yani anlayacağınız ilk işlem seçilecek sonra ilk sayı seçilecek ondan sonra birdaha ilk sayı seçilmeyecek sonuç üzerinden gidilecek burda ilk sayının dediğim gibi seçilmesi için for döngüsünün içine girmesi gerekiyor e haliyle sürekli seçtiriyor. Bunu nasıl halledebiliriz düşünüp birkaç şey denedim ama işe yaramadı malesef fikri olan varmıdır acaba? Şimdiden yardımlarınız için teşekkürler. İyi forumlar.


---------------------------------------------------------------------------------------
#include <stdio.h>

int main() {

int x,y,a;

printf("Ilk sayiyi giriniz=");
scanf("%d",&x);

for (;;){

printf("Bir islem seciniz:\n");
printf("1-Toplama\n");
printf("2-Cikarma\n");
printf("3-Carpma\n");
printf("4-Bolme\n");
printf("Girilecek islemi seciniz:");
scanf("%d", &a);

printf("Diger sayiyi giriniz:");
scanf("%d", &y);


if (a==1) {
printf("Sonuc:%d\n\n", x+y);
x=x+y;
}
else if (a==2) {
printf("%d", x-y);
x=x-y;
}
else if (a==3) {
printf("%d", x*y);
x=x*y;
}
else if (a==4) {
printf("%d", x/y);
x=x/y;
}
else {

printf("Geçersiz işlem");
}
}

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



S
7 yıl (3300 mesaj)
Yüzbaşı

evet for dongusunun icine alman lazim fakat bir kere sectirmek istedigin icin for dongusunun disiga flag variable i tutup o sayede bir kere sectirebilirsin. Mesela int x,y,a satirina flag diyede bir sey ekle ilk degeri 0 olsun, for dongusunun icinde if (flag == 0){ scanf("%d",&x); flag = 1;} yapabilirsin. Kod biraz garip ama yeni baslamissin ogrenmeye galiba o yuzden cokta muhim degil. Bir de bu kadar else if kullanicagina switch yapisina bakabilirsin.


Bu mesaja 1 cevap geldi.
J
7 yıl (55 mesaj)
Çavuş
Konu Sahibi

çok teşekkür ederim işe yaradı demek istediğiniz kodu anladım ben onu while ile yapmaya çalıştım olmadı while döngüsünün içine yazıp döngü dışına işte atıyorum flag++ şeklinde bi satır yazdım fakat olmadı bu oldu saolun bu arada switch yapısını kullandım zaten ilk fakat tüm switchi döngüyü aldığımda sürekli bütün işlemleri sırayla yapıyor her caseye break yazdığımda ise komutu bitiriyor onu çözemedim


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @STR Priest
S
7 yıl (3300 mesaj)
Yüzbaşı

quote:

Orijinalden alıntı: Jubstaaa

çok teşekkür ederim işe yaradı demek istediğiniz kodu anladım ben onu while ile yapmaya çalıştım olmadı while döngüsünün içine yazıp döngü dışına işte atıyorum flag++ şeklinde bi satır yazdım fakat olmadı bu oldu saolun bu arada switch yapısını kullandım zaten ilk fakat tüm switchi döngüyü aldığımda sürekli bütün işlemleri sırayla yapıyor her caseye break yazdığımda ise komutu bitiriyor onu çözemedim
if (a==1) {
printf("Sonuc:%d\n\n", x+y);
x=x+y;
}
else if (a==2) {
printf("%d", x-y);
x=x-y;
}
else if (a==3) {
printf("%d", x*y);
x=x*y;
}
else if (a==4) {
printf("%d", x/y);
x=x/y;
}
else {

printf("Geçersiz işlem");
Demek istedigim if, else if, else olan yere su sekilde de yazabilirsin:
switch(a){
case 1: printf("Sonuc:%d\n\n", x+y);
x=x+y; break;
case 2: else if (a==2) {
printf("%d", x-y);
x=x-y; break;
boyle boyle
en sonda else yerine
default:printf("Geçersiz işlem");
} yazabilirsin


Bu mesaja 1 cevap geldi.
J
7 yıl (55 mesaj)
Çavuş
Konu Sahibi

---------------------------------------
#include <stdio.h>

int main() {

int x,y,a,flag;


for (;;){

printf("Bir islem seciniz:\n");
printf("1-Toplama\n");
printf("2-Cikarma\n");
printf("3-Carpma\n");
printf("4-Bolme\n");
printf("Girilecek islemi seciniz:");
scanf("%d", &a);

if (flag == 0){ printf("Ilk sayiyi giriniz="); flag = 1;}
if (flag == 1){ scanf("%d",&x); flag = 2;}


printf("Diger sayiyi giriniz:");
scanf("%d", &y);


switch(a){

case 1:
printf("Sonuc:%d\n\n", x+y);
x=x+y;
break;
case 2:
printf("Sonuc:%d\n\n", x-y);
x=x-y;
break;
case 3:
printf("Sonuc:%d\n\n", x*y);
x=x*y;
break;
case 4:
printf("Sonuc:%d\n\n", x/y);
x=x/y;
break;
default:

printf("Geçersiz işlem"); }
}

return 0; }
-----------------------------------------------

bu şekilde çalıştı bende önceden switch case denemiştim ama sorun olmuştu sanırım bu flag olayı herşeyi çözdü teşekkürler :D




Bu mesajda bahsedilenler: @STR Priest
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.