logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

C++ - Jak poprawnie używać operatora dzielenia dla liczb całkowitych i zmiennoprzecinkowych?

ErYcK1111 29 Gru 2008 18:34 9346 4
REKLAMA
  • #1 5919597
    ErYcK1111
    Poziom 10  
    Posty: 27
    #include <iostream>
    #include <conio.h>
    using namespace std;
    int dzialanie(int a,int b,int dzial);//1,1
    float dzalanie (float a,float b,float dzial);//1/2
    int main(){
    int a,b;
    int dzial;
    //float(1/2) -operator dzielenia
    // double lub float 
    cout <<endl<<"Podaj 2 liczby(liczba(np.1)[Enter]liczba(np.2)):"<<endl;
    cin>>a;
    cin>>b;
    cout<<"wybierz dzialanie:"<<endl;
    cout<< "1 dodawanie" <<endl;
    cout<< "2 odejmowanie" <<endl;
    cout<< "3 mnozenie" <<endl;
    cout<< "4 dzielenie" <<endl;
    cout<< "0 wyjscie" <<endl;
    cin>>dzial;
    if(!dzial) return 0;
    cout<<"Wynik jest rowny "<<endl;
    cout<<dzialanie(a,b,dzial)<<endl;
    return main();
    return 0;
    }
    
    int dzialanie(int a,int b,int dzial){
    int wynik;
    switch(dzial){
    	case 1 :
    	wynik=a+b;
    	break;
    
    	case 2 :
    	wynik=a-b;
    	break;
    
    	case 3 :
    	wynik=a*b;
    	break;
    
    	case 4 :
    	wynik=a/b;
    	break;
    }
    return wynik;
    }
    

    Chcałbym aby tem kalkurator dzielił i w wynikach były ułamki np.3:2=1,5
    wolałbym aby operatorem dzielenia było double.
  • REKLAMA
  • #2 5919727
    ks_fenix
    Poziom 23  
    Posty: 692
    Pomógł: 44
    Ocena: 29
    Zauważ że funkcja zwraca ci wynik działań jako liczbę int, a ona nie przedstawia liczb zmiennoprzecinkowych.
    Zdeklaruj "wynik" jako float lub double
    Troszkę pozmieniałem twój kod i mi działa normalnie(porównaj sobie):
    #include <iostream>
    #include <conio.h>
    using namespace std;
    float dzialanie(float a,float b,int dzial);//1,1
    
    int main(){
    float a,b;
    int dzial;
    //float(1/2) -operator dzielenia
    // double lub float
    cout <<endl<<"Podaj 2 liczby(liczba(np.1)[Enter]liczba(np.2)):"<<endl;
    cin>>a;
    cin>>b;
    cout<<"wybierz dzialanie:"<<endl;
    cout<< "1 dodawanie" <<endl;
    cout<< "2 odejmowanie" <<endl;
    cout<< "3 mnozenie" <<endl;
    cout<< "4 dzielenie" <<endl;
    cout<< "0 wyjscie" <<endl;
    cin>>dzial;
    if(!dzial) return 0;
    cout<<"Wynik jest rowny "<<endl;
    cout<<dzialanie(a,b,dzial)<<endl;
    return main();
    return 0;
    }
    
    float dzialanie(float a,float b,int dzial){
    float wynik;
    switch(dzial){
       case 1 :
       wynik=a+b;
       break;
    
       case 2 :
       wynik=a-b;
       break;
    
       case 3 :
       wynik=a*b;
       break;
    
       case 4 :
       wynik=a/b;
       break;
    }
    return wynik; }
    
  • REKLAMA
  • REKLAMA
  • #4 5919844
    ks_fenix
    Poziom 23  
    Posty: 692
    Pomógł: 44
    Ocena: 29
    Patrz wyżej w odpowiedzi. Sekundę się spóźniłem :D
  • #5 5919868
    ErYcK1111
    Poziom 10  
    Posty: 27
    Dzienki wielkie
REKLAMA