C++ İşlem Önceliği

Katılım
29 Aralık 2017
Mesajlar
82
Çözümler
1
Daha fazla  
Cinsiyet
Erkek
C++ da yeniyim. Bölme işlemi biraz garip geldi. Mesela 2 ile 14'ü böldüğümde 0 çıkıyor ama 14 ile 2'yi böldüğümde 7 çıkıyor ama iki türlü de nasıl doğru cevabı çıkarmasını sağlarım? Yani ikisinde de 7 çıkması gerekiyor ve belki de kullanıcı ilk 2 sayısını girecek, sonra 14 girecek bu gibi durumları nasıl düzeltiyoruz?

C++:
#include <iostream>

using namespace std;

int main(){
setlocale(LC_ALL,"Turkish");
int s1,s2;

cout<<"İlk değeri gir: "<<endl;
cin >> s1;
cout<<"İkinci değeri gir: "<<endl;
cin>> s2;

cout<<s1<<" + " <<s2<< " = "<<s1+s2<<endl;
cout<<s1<<" - " <<s2<< " = "<<s1-s2<<endl;
cout<<s1<<" / " <<s2<< " = "<<((float)s1/(float)s2)<<endl;

return 0;
}
 
Hocam öyle bir şeyin olması mantıklı olmayabilir sanki 5'i 10'a bölünce farklı 10'u 5'e bölünce farklı sonuç alıyoruz sonuçta ikisinin aynı olmasını bekleme tam mantıklı olmayabilir ama emin değilim.
 
2 ıle 14'ü böldüğünde 7 çıkmaz ki, 0, 14 çıkar bunu yuvarlayınca 0 olur. Yani sen matematikte hata yapıyorsun 2/14 ile 14/2 aynı cevabı çıkartmaz :D. S1 ve S2'yi float tanımla.
 
Integer bölme öyledir. Alt taban fonksiyonu sonucu verir.
Denildiği gibi istediğin sonuç için türlerden birinin ondalıklı olması lazım. Ya da daha güzeli; typecasting denen şeyi yapacaksın. O parantezle yaptığın şey aslında o.
Ama C++'ta daha çok static_cast kullanılır bu iş için. Onu kullanmanı tavsiye ederim. Düzgün kod yazmaya alışkanlık olur.
 
Sanırım büyük olanın küçük olana bölünmesini sormuşsun. Büyük sayı ve küçük sayı için ayrı bir değişken oluştur(örneğin: bNumber ve sNumber) if ile hangisinin büyük olduğunu bul s1 büyük ise bNumber'ı s1'e, SNumber'ı s2'ye eşitle değilse tam tersini yap.
 

Geri
Yukarı