Şimdi Ara

C bilen biri yardım edebilir mi?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir (1 Mobil) - 1 Masaüstü1 Mobil
5 sn
6
Cevap
0
Favori
913
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • 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;
    }
    ---------------------------------------------------------------------







  • 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.
  • STR Priest kullanıcısına yanıt
    ç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
  • 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




  • STR Priest kullanıcısına yanıt
    ---------------------------------------
    #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




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.