ďťż

Ładny brzuch

Pewnie to jest proste, ale ja jestem kompletnym laikiem. Napisałem sobie program, który liczy czy trzy podane boki mogą zbudować trójkąt i czy będzie to trójkąt prostokątny. Wszystko działa, ale chciałem sobie go wziąść w pętlę, żeby nie wyłączał się po każdym razie tylko działał aż jakiś tam warunek będzie. Z parametrem int dla zmiennych pętla nie działała poprawnie (zamykała program zawsze), gdy parametr zmieniłem na char a warunek na sprawdzanie czy ktoras ze zmiennych nie rowna sie 'koniec' , program zaczął źle działać (przy sprawdzaniu czy trojkat jest prostokatny). Kod podaje poniżej.

#include <iostream> using namespace std; int a,b,c; int main() { /*cout << "\nJest to program to sprawdzania czy z podanych dlugosci bokow da sie zbudowac trojkat. \nNa poczatku podajesz 3 dlugosci, program sprawdza, a nastepnie dalej mozesz podawac dlugosci. \nAby zakonczyc program wpisz 0" << endl; // lub 'koniec' //while((a!='koniec')||(b!='koniec')||(c!='koniec')) //while((a!=0)||(b!=0)||(c!=0)) {*/ cout << "\nWpisz dlugosci bokow trojkata - " << endl; cin >> a; cin >> b; cin >> c; cin.ignore(); if((a+b>c)&&(b+c>a)&&(a+c>B)) { cout << "Trojkat gotowy, "; if((a*a+b*b==c*c)||(b*b+c*c==a*a)||(a*a+c*c==b*B)) { if((a==4,b==5,c==3)||(a==3,b==4,c==5)||(a==5,b==3,c==4)) { cout << "Jest to typowy trojkat Pitagorejski" << endl; } else { cout << "trojkat jest prostokatny" << endl; } } else { cout << "trojkat nie jest prostokatny" << endl; } } else { cout << "niestety trojkata nie zbudujesz z tych bokow.." << endl; } //getchar(); //} getchar(); }

PS. Powiedzcie mi w gwoli scisłości jak to jest ze zmienną char - w ' ' trzeba wstawiać tylko znaki (np. 'a'), czy cyfry też ('2')?

PS2. Jak zrobić żeby program wykrywał mi polskie znaki?

PS3. I jeszcze po krutce po co jest return (bo w niektórych programach widziałem takie zakończenia programów - return 0;

Z góry dzięki za odpowiedzi :)
Użytkownik mati088 edytował ten post 09 marzec 2008, 01:11


ps1: '2' jest znakiem, który jest zapisany binarnie jako 50 - czyli '2'==50. Literka 'a' ma natomiast wartość 97

ps2: wykrywał, czy raczej wyświetlał? Żeby wyświetlał musisz przekonwertować polskie znaczki z kodowania ansi na oem (przykładowo w notepad2 - zaznaczasz tekst i wybierasz z menu Edit -> Convert -> To OEM Text)

ps3: return służy do zwracania wartości z funkcji - w funkcji main zwraca wartość do systemu, i zazwyczaj 0 oznacza, że program zakończył się prawidłowo (w wierszu poleceń po zakończeniu się programu możesz wpisać: echo %errorlevel%, wyświetli ci się liczba jaką program zwrócił)
Użytkownik Radek edytował ten post 09 marzec 2008, 02:19
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •