Siedzę od dwóch godzin z tym problemem, a nie mogę go zauważyć. Program po prostu zwraca mi wartość "zle" z deufalt switcha.
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
void sortowanie()
{
int a, b, c;
cout << "Wybrales/as sortowanie trzech liczb" << endl;
cout << "Wpisz 1 liczbe";
cin >> a;
cout << "Wpisz 2 liczbe";
cin >> b;
cout << "Wpisz 3 liczbe";
cin >> c;
if (a >= b&&b >= c)
{
cout << "Posortowane liczby to:" << a << " " << b << " " << c << ".\n ";
}
else if (a >= c&&c >= b)
{
cout << "Posortowane liczby to:" << a << " " << c << " " << b << ".\n ";
}
else if (b >= a&&a >= c)
{
cout << "Posortowane liczby to:" << b << " " << a << " " << c << ".\n ";
}
else if (b >= c&&c >= a)
{
cout << "Posortowane liczby to:" << b << " " << c << " " << a << ".\n ";
}
else if (c >= b&&b >= a)
{
cout << "Posortowane liczby to:" << a << " " << b << " " << c << ".\n ";
}
else if (c >= a&&a >= b)
{
cout << "Posortowane liczby to:" << a << " " << b << " " << c << ".\n ";
}
}
void trojkat(int a, int b, int c)
{
cout << "Wybrales/as sprawdzenie trojkata" << endl << "Wpisz tutaj dlugosc boku a: ";
cin >> a;
cout << endl << "Wpisz tutaj dlugosc boku b: ";
cin >> b;
cout << endl << "Wpisz tutaj dlugosc boku c: ";
cin >> c;
if (a + b > c && a + c > b && c + b > a)
{
cout << "Tak, z takich dlugosci da sie zbudowac trojkat!" << endl << "z dlugosci: " << a << " " << b << " " << c << ". TO MOŻLIWE!";
}
else
{
cout << "Niestety, z takich dlugosci nie da sie zbudowac trojkata!" << endl << "z dlugosci: " << a << " " << b << " " << c << ". TO NIE JEST MOŻLIWE";
}
}
void trojkatpro(int a, int b, int c)
{
cout << "Wpisz dlugosc pierwszej przyprostokatnej: ";
cin >> a;
cout << "\nWpisz dlugosc drugiej przyprostokatnej: ";
cin >> b;
cout << "\nWpisz dlugosc przeciwprostokatnej: ";
cin >> c;
if (((a^2+b^2)==c^2)|| ((c ^ 2 + a ^ 2) == b ^ 2) || ((c ^ 2 + b ^ 2) == a ^ 2))
{
cout << "Tak, z podanych odcinkow da sie stworzyc trojkat prostokatny.";
}
else
{
cout << "Niestety, z podanych odcinkow nie da sie stworzyc trojkata prostokatnego";
}
}
void ascii(int a)
{
cout << "Wpisz jakis znak, by on zostal zamieniony na znak kodu ascii: ";
cin >> a;
cout << "Znak: " << a << " ma kod ascii: " << char(a);
}
void srednia(int a, int b, int c, double arytmetyczna, double geometryczna, double harmoniczna)
{
cout << "Wpisz 3 liczby, a z nich zostana obliczone: " << endl << "srednia arytmetyczna" << endl << "srednia geometryczna " << endl << "srednia harmoniczna\n";
cout << "Wpisz pierwsza liczbe: ";
cin >> a;
cout << "Wpisz druga liczbe: ";
cin >> b;
cout << "Wpisz trzecia liczbe: ";
cin >> c;
arytmetyczna = (a + b + c) / 3;
geometryczna = pow((a*b*c), (1 / 3));
harmoniczna = (3 / ((1 / (a)+(1 / (b)) + (1 / (c)))));
cout << "Srednia arytmetyczna: " << arytmetyczna << endl;
cout << "Srednia geometryczna: " << geometryczna << endl;
cout << "Srednia harmoniczna : " << harmoniczna << endl;
}
void wyznaczniki()
{
int a1, b1, c1, a2, b2, c2;
double W, Wx, Wy,x,y;
cout << "Program obliczy metoda wyznacznikow rownanie dwoch funkccji liniowych";
cout << "Wzor ogolny funkcji liniowej:" << "\n@@@@ Ay+Bx=C @@@@";
cout << endl << "Wpisz A pierwszej funkcji";
cin >> a1;
cout << endl << "Wpisz B pierwszej funkcji";
cin >> b1;
cout << endl << "Wpisz C pierwszej funkcji";
cin >> c1;
cout << endl << "Wpisz A drugiej funkcji";
cin >> a2;
cout << endl << "Wpisz B drugiej funkcji";
cin >> b2;
cout << endl << "Wpisz C drugiej funkcji";
cin >> c2;
W = (a1*b2) - (b1*a2);
Wx = (c1*b2) - (b1*c2);
Wy = (a1*c2) - (c1*a2);
if ((W == 0) && (Wy == 0) && (Wx == 0))
{
cout << "Ten uklad jest nieoznaczony!";
}
else
{
x = (Wx) / W;
y = (Wy) / W;
cout << "Ten uklad ma rozwiazanie:" << endl << "X: " << x << "Y: " << y;
}
}
int main()
{
char i;
cout << "Wybierz numer, by wybrac: \n";
cout << "1. Sortowanie 3 liczb. \n";
cout << "2. Sprawdzenie czy z 3 dlugosci mozna zbudowac trojkat dowolny\n";
cout << "3. Sprawdzenie czy z 3 dlugosci mozna zbudowac trojkat prostokatny\n";
cout << "4. Zamiana znaku na kod ascii\n";
cout << "5. Wyliczenie srednich\n";
cout << "6. Metoda wyznacznikow\n";
cout << "Wpisz odpowiedni numer ( bez kropki): ";
cin >> i;
switch (i)
{
case '1':
{
void sortowanie();
}
break;
case '2':
{
void trojkat();
}
break;
case '3':
{
void trojkatpro();
}
break;
case '4':
{
void ascii();
}
break;
case '5':
{
void srednia();
}
break;
case '6':
{
void wyznaczniki();
}
break;
default: cout << "zle" << i << "\n";
break;
}
system("pause");
return 0;
}