Pereiti prie turinio

Rekomenduojami pranešimai

Su C ++ darau mini skaiciavimo masinele, ir susiduriau su problema. Kaip padaryti kad butu dalyba is 0 negalima?

 

pas mane zmogus turi ivesti du skaicius a b, ir simboli (veiksmo)

 

if (simbolis == '/')

rez = a / b;

 

Kaip padaryti, kad jei dalina is nulio rasytu pranesima dalyba negalima?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

# include <iostream>  
using namespace std;  
int main ()  
{  
       double a, b;      
       double rez;               
       char simbolis;  
       cout <<"Iveskite skaicius"<< endl;  
       cin >> a >> b;  
       cout << "Iveskite simboli" << endl;  
       cin >> simbolis;  
       if (simbolis == '+')   
               rez = a + b;  
       else   
               if (simbolis == '-')   
                       rez = a - b;  
               else   
                       if (simbolis == '*')   
                               rez = a * b;  
                       else   
                               if (simbolis == '/')  
                                       rez = a / b;   



       else   

       cout << "Rezult: " << rez << endl;  
       return 0;  
}

 

programos kodas toks, noriu padaryti, kad rasytu dalyba is nulio negalima

Nuoroda į pranešimą
Dalintis kituose puslapiuose

# include <iostream>  
using namespace std;  
int main ()  
{  
       double a, b;      
       double rez;               
       char simbolis;  
       cout <<"Iveskite skaicius"<< endl;  
       cin >> a >> b;  
       cout << "Iveskite simboli" << endl;  
       cin >> simbolis;

       if (simbolis == '+')
       {   
          rez = a + b;  
       }
       else if (simbolis == '-')
       {   
          rez = a - b;
       {
       else if (simbolis == '*')
       {  
          rez = a * b; 
       } 
       else if (simbolis == '/')
       {
          if(b != 0)
          {
             rez = a / b;
          }
          else
          {
             rez = a;
          }
       }

       if(simbolis == '/' && b == 0)
       {
           cout << "Klaida, dalyba is nulio negalima!" << endl;
       }
       else
       {
           cout << "Rezult: " << rez << endl; 
       }
       system("pause");
       return 0;  
}

 

Turėtų veikt :) turbūt VDU studijuoji informatiką? :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Ne VDU, mokykla dar ;] kitą met VDU arba KTU gal VU..

 

Bet man tai vistiek meta klaidas...

 

Suklydau:

 

# include <iostream>  
using namespace std;  
int main ()  
{  
       double a, b;      
       double rez;               
       char simbolis;  
       cout <<"Iveskite skaicius"<< endl;  
       cin >> a >> b;  
       cout << "Iveskite simboli" << endl;  
       cin >> simbolis;

       if (simbolis == '+')
       {   
          rez = a + b;  
       }
       else if (simbolis == '-')
       {   
          rez = a - b;
       }
       else if (simbolis == '*')
       {  
          rez = a * b; 
       } 
       else if (simbolis == '/')
       {
          if(b != 0)
          {
             rez = a / b;
          }
          else
          {
             rez = a;
          }
       }

       if(simbolis == '/' && b == 0)
       {
           cout << "Klaida, dalyba is nulio negalima!" << endl;
       }
       else
       {
           cout << "Rezult: " << rez << endl; 
       }
       system("pause");
       return 0;  
}

Nuoroda į pranešimą
Dalintis kituose puslapiuose

# include <iostream>  
using namespace std;  
void sudetis(int p, int a) 
{
       cout << p + a << endl;
};
void atimtis(int p, int a)
{
       cout << p - a << endl;
};
void dalyba(int p, int a)
{
       if (a != 0) {cout << p/a << endl;}
               else {cout << endl << "Sprendinio nera -- dalyba is nulio negalima";}
};
void daugyba(int p, int a)
{
       cout << p*a << endl;
};
void skirstymas(string r)
{
       int i = 0;
       int a = 0, b = 0;
       int azenklas = 1;
       int bzenklas = 1;
       char zenklas;
			if (r[i] == '-') {azenklas = -1; i++;};
               while ((r[i] != '+') and (r[i] != '-') and (r[i] != '/') and (r[i] != '*'))
               {
                       a = a*10 + (r[i]-'0');
                       i++;
               }
               zenklas = r[i];
               i++;
               if (r[i] == '-') {bzenklas = -1; i++;};
               while (r[i] != 'x')
               {
                       b = b*10 + (r[i]-'0');
                       i++;
               }
               a = a * azenklas;
               b = b * bzenklas;
               cout << a << zenklas << b << "=";
               switch (zenklas)
               {
                       case '+': sudetis(a,b); break;
                       case '-': atimtis(a,b); break;
                       case '/': dalyba(a,b);  break;
                       case '*': daugyba(a,b); break;
               }
       }
int main ()  
{  
       string reiskinys;
       bool run = true;
       while (run)
       {
               cout <<"Parasykite reiskini: "<< endl;
               cin >> reiskinys;
               reiskinys += 'x';
               skirstymas(reiskinys);
               cout << endl << "Vykdyti dar karta? 1 - taip, 0 - ne" << endl;
               cin >> run;
               }
       return 0;  
}

Kažkur klaidą įvėliau (turbūt nenu-nullinau kažko), nes antrą kartą rašant reiškinį „3*-3“ gaunam amžiną ciklą arba mano PC lagą. Patikrinkit. :)

Redagavo Paulius
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...