Witam :)
Mam pytanie zrobiłem program na obliczenie objętości i chciałem zabezpieczyć boki przez wpisywaniem liczb ujemnych. Wymyśliłem coś takiego lecz to nie zdaje egzaminu nie wiem zbytnio dlaczego. Chciałem zrobić cos w stylu ,że jeżeli sprawdzi ,że bok a ma wartosc dodatnia to przechodzi do boku b i analogicznie cały program. Lecz wyświetla tylko "Podaj bok b trapezu" po czym "Objetosc graniastoslupa o podstawie trapezu jest rowna: -0".
Kod:
#include <iostream>
#include <stdio.h>
#include <math.h>
#include <cstdlib>
using namespace std;
int main()
{
for(;;)
{
double a,b,boka,bokb,wysg,wyst,v;
int a1,b1,wybor;
cout <<"-----Wybierz dzialanie-----" << "\n";
cout <<"1.Dzielenie" << "\n";
cout <<"2.Potegowanie" << "\n";
cout <<"3.Wartosc bezwzgledna" << "\n";
cout <<"4.Podzielnosc liczb" << "\n";
cout <<"5.Objetosc graniastoslupa" << "\n";
cout <<"6.Zakoncz" << "\n";
cout <<"Wybierz: ";
cin >> wybor;
switch(wybor)
{
case 1:
{
cout << "Podaj liczbe: ";
cin >> a;
cout << "Podaj liczbe: ";
cin >> b;
if (b==0)
cout <<"Nie dziel przez 0";
else
cout <<"Wynik dzielenia: " << a/b;
}
break;
case 2:
{
cout << "Podaj liczbe: ";
cin >> a;
cout <<"Wynik potegowania: " << pow(a,2);
}
break;
case 3:
{
cout <<"Podaj liczbe: ";
cin >>a;
cout <<"Wynik wartosci bezwzglednej: " << fabs(a);
}
break;
case 4:
{
cout <<"Podaj liczbe: ";
cin >>a1;
cout <<"Podaj liczbe: ";
cin >>b1;
if(a1%b1 == 0)
cout << "\nLiczby sa podzielne przez siebie.";
else
cout << "Liczby nie sa podzielne przez siebie";
}
break;
case 5:
{
if(boka >=0){
cout <<"Podaj bok a trapezu: ";
cin >> boka;
}
else if (bokb >=0){
cout <<"Podaj bok b trapezu: ";
cin >> bokb;
}
else if (wyst >=0){
cout <<"Podaj wysokosc trapezu: ";
cin >> wyst;
}
else if (wysg >=0){
cout <<"Podaj wysokosc graniastoslupa: ";
cin >> wysg;
}
else cout <<"Bok nie moze byc ujemny";
v=((boka+bokb)/2)*wyst*wysg;
cout <<"Objetosc graniastoslupa o podstawie trapezu jest rowna: " << v;
}
break;
case 6:
{
exit(0);
}
break;
default: cout <<"Nie ma takiej opcji.";
}
getchar();getchar();
system("cls");
}
}