• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem ze switchem

Object Storage Arubacloud
+1 głos
234 wizyt
pytanie zadane 5 listopada 2015 w C i C++ przez Sebastian R Obywatel (1,110 p.)

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;

}

 

2 odpowiedzi

0 głosów
odpowiedź 5 listopada 2015 przez furas Maniak (53,800 p.)

A czy wypisuje Ci przy tym też wpisany numer ?

Char pobiera dowolny pojedyńczy znak - nawet jeśli jest to spacja lub  tabulator.

Moze pobieraj wartość `int` ( i porównuj z liczbami a nie tekstami) to wtedy będzie pomijać ewentualne spacje i tabulatory wpisane (z klawiatury) przed wpisaną liczbą

---

Zamiast poniższego i podobnych
 

case '1':
{
    void wyznaczniki();
}
break;

zrób 

case '1':
    wyznaczniki();
    break;

 

komentarz 5 listopada 2015 przez niezalogowany
Bloki nie powinny generować tego problemu, bo możesz skorzystać z ich w dowolnym miejscu w kodzie. Raczej składniałbym się do czegoś innego.
komentarz 5 listopada 2015 przez Sebastian R Obywatel (1,110 p.)

Poprawiłem, ale problem ten sam.

#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()
{
	int 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;

}

 

komentarz 5 listopada 2015 przez Sebastian R Obywatel (1,110 p.)
a gdy utnę Voidy przy wywoływaniu, to wyskakują problemy:

Too few arguments in fuction call x4
komentarz 5 listopada 2015 przez niezalogowany
Co ciekawe pod linuxem i kompilatorem g++ po wpisaniu liczby nie ma żadnego outputu.
komentarz 5 listopada 2015 przez furas Maniak (53,800 p.)
edycja 5 listopada 2015 przez furas

void wyznaczniki();

nie jest wywołaniem funkcji tylko informacją (jaką daje się w plikach nagłówkowych .h), że masz gdzieś zdefiniowaną funkcję o nazwie `wyznacznik`, która nie przyjmuje argumentów.

Dzięki temu możesz mieć tą funkcję zdefiniowaną w innym pliku i kompilator podczas kompilacji jednego pliku będzie wiedział, że znajdzie tą funkcję w innym pliku i nie musi informować o błędzie.

---

W niektórych funkcjach zdefiniowałeś, ze przyjmują argumenty np.

srednia(int a, int b, int c, double arytmetyczna, double geometryczna, double harmoniczna)

więc przy wywołaniu takiej funkcji trzeba te argumenty przekazać bo tego oczekuje kompilator.

srednia(1, 2, 3, 0, 0, 0);
trojkat(3, 4, 5);

 

komentarz 6 listopada 2015 przez Sebastian R Obywatel (1,110 p.)
Dlaczego (int a, int b, int c) przyjmują wartośći (1,2,3), a w trojkacie (3,4,5) a double przyjmują wartości 0?
komentarz 6 listopada 2015 przez furas Maniak (53,800 p.)
Zdefiniowałeś funkcję trójkąt `trojkat(int a, int b, int c)` czyli przy jej wywołaniu np. `trójkąt(3,4,5);` wartości 3, 4, 5 zostaną przypisane do zmiennych a, b, c. (same wartości 3,4,5 wymyśliłem bo wiem, że 3*3 + 4*4 = 5*5)

Zdefiniowałeś funkcję `srednia(int a, int b, int c, double arytmetyczna, double geometryczna, double harmoniczna)` czyli przy jej wywołaniu np. `srednia(1, 2, 3, 0, 0, 0);` wartości 1,2,3,0,0,0 zostaną przypisane do zmiennych a, b, c, arytmetyczna, geometryczna, harmoniczna. Same wartości 1,2,3,0,0,0 wziąłem na chybił trafił.

Tak na prawdę to musiał być prosić użytkownika o podanie wartości, które potem byś przekazywał do `trojkat(int a, int b, int c)` i `srednia(int a, int b, int c, double arytmetyczna, double geometryczna, double harmoniczna)`
komentarz 6 listopada 2015 przez Sebastian R Obywatel (1,110 p.)

czyli działałoby to tak, jak gdybym przypisał wartości w pętli
 

void x()
{
int a=1;
int b=2;
int c=3;
}

 

komentarz 6 listopada 2015 przez niezalogowany

Wizę, że nie rozumiesz ideii funkcji, przerób sobie je jeszcze raz, zrób prosty przykład i wróc do tego projektu

http://cpp0x.pl/kursy/Kurs-C++/Poziom-2/Funkcje-pierwsze-starcie/291

Przed kompilacją programu poniżej zastanów się jakie wartości zostaną wyświetlone i dlaczego

void foo(int a)
{
 a = 3;
 cout << a << endl;
}

void bar(int& a)
{
 a = 3;
 cout << a << endl;
}


int main()
{
 int x = 7;
 cout << x << endl;
 
 foo(x);
 cout << x << endl;

 bar(x);
 cout << x << endl; 
}

Podaj dokładny output programu, tzn wyświetlone wartości w tej samej kolejności w jakiej zwróci je program.

komentarz 6 listopada 2015 przez furas Maniak (53,800 p.)
void x()
{
    int a=1;
    int b=2;
    int c=3;

    cout << a+b+c << endl;
}

Rzeczywiście wygląda to podobnie. Tworzone są zmienne lokalne o nazwach a,b,c i przypisane są do nich wartości 1,2,3. Ale w Twoim kodzie masz na sztywno przypisane te wartości i każde uruchomienie x() będzie wypisywać "6" . jakakolwiek zmiana wymagała by ponownego przekompilowania kodu.

void x(int a, int b, int c)
{
    cout << a+b+c << endl;
}

W powyższym mogę wywołać funkcję `x(1,2,3)` i też wypisze "6". Ale mogę też uruchomić `x(9,8,7)` i wypisze mi "24", lub `x(5,-3,-1)` i wypisze mi "-1" więc mogę funkcję wykorzystywać z różnymi liczbami.

0 głosów
odpowiedź 5 listopada 2015 przez niezalogowany
W drugiej wersji kodu jeżeli pozamianieasz wartości w switchu maina '1', '2', ... na 1,2,.. to kod zaczyna działać (wykrywa nieobsługiwane liczby), ale masz dalej skopane wnętrza funkcji.

@EDIT Przy okazji: a^2 nie oznacza "a do do potęgi drugiej", tylko "a xor 2". '^' służy do operacji na bitach.
komentarz 5 listopada 2015 przez niezalogowany

Teraz dopiero przyjrzałem się dokładnie temu kodowi, nie sądziłem że można zrobić takie błędy:

  1. To co mówił @furas, przy wywołaniu nie pisz voida, jeżeli jest void przy nazwie to podajesz informację, że deklarujesz taką funkcję i jej ciało gdzieś się pojawi (to nie jest wywołanie).
  2. potęgowanie się robi przy użyciu funkcji pow(), a nie ^, który służy do czego innego
komentarz 5 listopada 2015 przez Sebastian R Obywatel (1,110 p.)
1.To dopiero moje pierwsze kroki, jak widać :D
2. Co do potęgowania za pomocą "^" to chyba można do drugiej potęgi? Czy lepiej zawsze uzywać funkcji pow?

@Edit: Myślę, że teraz widzę różnicę @Szymon Siarkiewicz. Dzięki, ale dalej problem nie jest rozwiązany. :/
komentarz 5 listopada 2015 przez niezalogowany
^ jest operatorem bitowym, on nie potęguje liczby, on na bitach liczby a i liczby 2 wykonuje operację XOR.

@EDIT wrzuć aktualny kod
komentarz 5 listopada 2015 przez Sebastian R Obywatel (1,110 p.)
#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*a+b*b)==c*c)|| ((c*c + a*a) == b*b) || ((c*c + b*b) == a*a))
	{
		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()
{
	int 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:
		sortowanie();
		break;
	case 2:
		trojkat(3,4,5);
		break;
	case 3:
		trojkatpro(1,2,3);
		break;
	case 4:
		ascii(1);
		break;
	case 5:
		srednia(1,2,3,0,0,0);
		break;
	case 6:
		wyznaczniki();
		break;
	default: cout << "zle" << i << "\n";
		break;
	}
		system("pause");
return 0;

}

 

Podobne pytania

0 głosów
1 odpowiedź 357 wizyt
pytanie zadane 12 grudnia 2015 w C i C++ przez Ziuziek Mądrala (5,140 p.)
0 głosów
2 odpowiedzi 283 wizyt
pytanie zadane 9 listopada 2015 w C i C++ przez Plessio Obywatel (1,090 p.)
0 głosów
1 odpowiedź 201 wizyt
pytanie zadane 21 sierpnia 2017 w C i C++ przez Kijoszi Początkujący (330 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...