C++ toplama çıkarma islemi

Katılım
19 Ekim 2019
Mesajlar
1.423
Çözümler
4
Yer
Dire
Kod:
#include <iostream>
using namespace std;
int main ()
{
int a,b;
string c;
cout <<"Enter the operation type (+ or -): "; cin >> c;
cout << "Enter the numbers: "; cin >> a >>b;
if (a==0 || b==0)
{
cout <<"Operation can not be done";
}
else if (c=="+" || c=="-")
{
if (c=="+")
{
double r;
r=(1/a)+(1/b);
cout <<"******\n";
cout <<"1/" << a << "+" <<"1/" << b << "=" << r << endl;
}
else
{
double r;
r=(1/a)-(1/b);
cout <<"******\n";
cout <<"1/" << a << "-" <<"1/" << b << "=" << r << endl;
}

}
else
{
cout <<"Invalid operation";
}
}

Program linkte bulunmaktadır.
İşlemi yaptığımda sonuç 0 geliyor, problemi çözemedim.
 
Son düzenleyen: Moderatör:
a ve b'yi double olarak tanımlamalısın. Integer olarak tanımladığın için ondalık olan sunucu otomatik olarak 0'a yuvarlayıp gösteriyor.
 
C++:
#include <iostream>
using namespace std;
int main()
{
    int a, b;
    string c;
    cout << "Enter the operation type (+ or -): "; cin >> c;
    cout << "Enter the numbers: "; cin >> a >> b;
    if (a == 0 || b == 0)
    {
        cout << "Operation can not be done";
    }
    else if (c == "+" || c == "-")
    {
        if (c == "+")
        {
            int r;
            r = a + b;
            cout << "**\n";
            cout << "result : " << a << " + " << b << " = "  << r;
        }
        else
        {
            int r;
            r = a - b;
            cout << "**\n";
            cout << "result : " << a << " + " << b << " = " << r;
        }

    }
    else
    {
        cout << "Invalid operation";
    }
}

1583955970321.png


Eğer isterseniz bu şekilde yaptım. Sorunuza cevap arıyorsanız 1/sayı yaptığınız için sonuç sürekli 0 geliyor.
 
Indentation'a da dikkat etmen ileride işine yarar.
Sorun 1/a+1/b'yi r yapman. a bir integer. 1/a dediğin an bu bir integer olur. Normalde değeri 0,xyz olması gerekirken veri kaybına uğrarsın. 1.0/a yaparsan veri kaybı olmaz. Ya da typecasting yaparsın.
Integer/integer işleminin sonucu integer olur. Double/integer ya da integer/double işleminin sonucu ise double olur. En ayrıntılı hangisi ise ona göre sonucu elde eder.
 
Uyarı! Bu konu 6 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Geri
Yukarı