• 28-12-2021, 01:28:20
    #1
    Hepinize merhaba,

    Ödevim için hesap makinesi kodlamam gerekiyor fakat bir sorunla karşılaştım ve işin içinden çıkamadım. Kullanıcı kaç adet sayı gireceğini kendisi belirliyor. Bu sebeple while döngüsü kullanmayı seçtim. While döngüsünün içinde işlem yaptırıyorum. Sorun şu ki ilk girilen sayıyı 0'dan çıkarıyor. (Örn: 0 - 30 = -30). 0'dan çıkardığı için işlemi yanlış hesaplıyor. Örnek bir kod bıraktım aşağıya. Yardımcı olabilirseniz sevinirim .
    #include <stdio.h>
    int main()
    {
        float num=0, count=0, total, howmanynumbers;
        
        printf("How many numbers do you want to calculate: ");
        scanf("%f", &howmanynumbers);
        
        while(count<howmanynumbers)
        {
            printf("Enter a number: ");
            scanf("%f",&num);
            total -= num;
            count++;
        }
        printf("%f", total);
        
        return 0;
    }
  • 28-12-2021, 01:36:49
    #2
    #include <stdio.h>  
    #include <stdlib.h>
    
    
    
       int main()
       {
          int a,b,sonuc;
          char secim;
    
          printf ("ilk sayıyı giriniz = ");
          scanf ("%d",&a);
          fflush(stdin);
    
         printf ("işlem seciniz[+ , - , * , /]..");
         secim = getchar();
         printf ("ikinci sayıyı giriniz.. ");
         printf ("%d %c  ",a,secim);
         scanf("%d",&b);
    
         switch(secim)
          {
          case '+' :
              sonuc = a + b;
              printf("Toplama işleminin sonucu %d'dir..",sonuc);
          break;
    
          case '-' :
              sonuc = a - b;
              printf("Çıkartma işleminin sonucu %d'dir..",sonuc);
          break;
    
          case '*' :
              sonuc = a * b;
              printf("Çarpma isleminin sonucu %d'dir..",sonuc);
          break;
    
          case '/' :
              sonuc = a / b;
              printf("Bölme işleminin sonucu %d'dir..",sonuc);
          break;
          default :
          printf ("Lutfen belirtilen karakterlerden biriniz secin");
          }
    
         printf(" enter tusuna basınız");
    
          fflush(stdin);
          getchar();
          return 0;
      }
  • 28-12-2021, 01:38:50
    #3
    For ile de dönebilirsiniz, neden While tercih ettiniz ? ( meraktan soruyorum )
    denemeden yazdım ama örnek şöyle bir şey olabilirdi.

    int i, size;
    float num, sum
    for(i=0; i<size; i++)
    {
    sum = sum+num;
    }
  • 28-12-2021, 01:41:50
    #4
    osawashere adlı üyeden alıntı: mesajı görüntüle
    For ile de dönebilirsiniz, neden While tercih ettiniz ? ( meraktan soruyorum )
    denemeden yazdım ama örnek şöyle bir şey olabilirdi.

    int i, size;
    float num, sum
    for(i=0; i<size; i++)
    {
    sum = sum+num;
    }
    For çok karmaşık geliyor bana hocam o yüzden while ile yazmayı deniyorum şuan. Sonuca ulaşamazsam for ile döndürmeye çalışacağım.

    hazarardatuysuz adlı üyeden alıntı: mesajı görüntüle
    #include <stdio.h>  
    #include <stdlib.h>
    
    
    
       int main()
       {
          int a,b,sonuc;
          char secim;
    
          printf ("ilk sayıyı giriniz = ");
          scanf ("%d",&a);
          fflush(stdin);
    
         printf ("işlem seciniz[+ , - , * , /]..");
         secim = getchar();
         printf ("ikinci sayıyı giriniz.. ");
         printf ("%d %c  ",a,secim);
         scanf("%d",&b);
    
         switch(secim)
          {
          case '+' :
              sonuc = a + b;
              printf("Toplama işleminin sonucu %d'dir..",sonuc);
          break;
    
          case '-' :
              sonuc = a - b;
              printf("Çıkartma işleminin sonucu %d'dir..",sonuc);
          break;
    
          case '*' :
              sonuc = a * b;
              printf("Çarpma isleminin sonucu %d'dir..",sonuc);
          break;
    
          case '/' :
              sonuc = a / b;
              printf("Bölme işleminin sonucu %d'dir..",sonuc);
          break;
          default :
          printf ("Lutfen belirtilen karakterlerden biriniz secin");
          }
    
         printf(" enter tusuna basınız");
    
          fflush(stdin);
          getchar();
          return 0;
      }
    Hocam kaç sayı ile işlem yapılacağını kullanıcı belirleyecek. Örneğin; 40-20-10 veya 90-20-10-40-30 gibi. Teşekkürler yine de yardımınız için.
  • 28-12-2021, 01:42:17
    #5
    hazarardatuysuz adlı üyeden alıntı: mesajı görüntüle
    #include <stdio.h>  
    #include <stdlib.h>
    
    
    
       int main()
       {
          int a,b,sonuc;
          char secim;
    
          printf ("ilk sayıyı giriniz = ");
          scanf ("%d",&a);
          fflush(stdin);
    
         printf ("işlem seciniz[+ , - , * , /]..");
         secim = getchar();
         printf ("ikinci sayıyı giriniz.. ");
         printf ("%d %c  ",a,secim);
         scanf("%d",&b);
    
         switch(secim)
          {
          case '+' :
              sonuc = a + b;
              printf("Toplama işleminin sonucu %d'dir..",sonuc);
          break;
    
          case '-' :
              sonuc = a - b;
              printf("Çıkartma işleminin sonucu %d'dir..",sonuc);
          break;
    
          case '*' :
              sonuc = a * b;
              printf("Çarpma isleminin sonucu %d'dir..",sonuc);
          break;
    
          case '/' :
              sonuc = a / b;
              printf("Bölme işleminin sonucu %d'dir..",sonuc);
          break;
          default :
          printf ("Lutfen belirtilen karakterlerden biriniz secin");
          }
    
         printf(" enter tusuna basınız");
    
          fflush(stdin);
          getchar();
          return 0;
      }
    hocam güzelce yazmış kodu aynı zamanda şöyle bir şeyde yapabilirsin. İf içinde ilk sayı( a değişkeni olsun) ikinci sayıdan(b değişkeni olsun) küçükse yani if( a < b){ b-a;} b değişkeninden a değişkenini çıkartabilirsin. Kolay gelsin
  • 28-12-2021, 01:43:30
    #6
    Onur_Ozturk adlı üyeden alıntı: mesajı görüntüle
    hocam güzelce yazmış kodu aynı zamanda şöyle bir şeyde yapabilirsin. İf içinde ilk sayı( a değişkeni olsun) ikinci sayıdan(b değişkeni olsun) küçükse yani if( a < b){ b-a;} b değişkeninden a değişkenini çıkartabilirsin. Kolay gelsin
    Sorun şu ki değişken sayısını kullanıcı belirliyor Teşekkürler yine de.
  • 28-12-2021, 01:53:00
    #7
    İlk başta kullanıcıdan bir sayı alın. Sonra for yada while döngüsünün içine işlem seçeneklerini girin +,- vs sonra döngünün içinde de bir adet sayı isteyin. Bu sayede kullanıcı her sayı girdiğinde işlem yapmak zorunda olacak. Ve eğer sonucu görmek isterse = e basacak.
    Örnek Pythonda Yazdığım Kod:
  • 28-12-2021, 02:03:16
    #8
    kadirilgin1453 adlı üyeden alıntı: mesajı görüntüle
    İlk başta kullanıcıdan bir sayı alın. Sonra for yada while döngüsünün içine işlem seçeneklerini girin +,- vs sonra döngünün içinde de bir adet sayı isteyin. Bu sayede kullanıcı her sayı girdiğinde işlem yapmak zorunda olacak. Ve eğer sonucu görmek isterse = e basacak.
    Örnek Pythonda Yazdığım Kod:
    Hocam dediğiniz gibi döngünün içine sokuyorum, kullanıcı her sayı girdiğinde işlemi yapıyor fakat sorun şurada; Çıkarma işlemi için sayıyı 30 girdi diyelim default olarak 0'dan 30'u çıkarıyor ve - 30 ile başlıyor işlem. Toplamada sıkıntı yok fakat çıkarma, çarpma ve bölmede sıkıntı oluyor bu sebeple.
  • 28-12-2021, 09:09:18
    #9
    kali adlı üyeden alıntı: mesajı görüntüle
    Hocam dediğiniz gibi döngünün içine sokuyorum, kullanıcı her sayı girdiğinde işlemi yapıyor fakat sorun şurada; Çıkarma işlemi için sayıyı 30 girdi diyelim default olarak 0'dan 30'u çıkarıyor ve - 30 ile başlıyor işlem. Toplamada sıkıntı yok fakat çıkarma, çarpma ve bölmede sıkıntı oluyor bu sebeple.
    Tamam işte döngünün dışında dada kodun başında yani sayı istemeniz lazım kullanıcıdan