Dziwne znaki programie

0

Witam,
Nie jestem profesjonalnym programistą (jestem na poziomie drugiej klasy technikum), ale stworzyłem program, który sprawdza czy dzięki podanym przeze mnie liczbom, program sprawdzi czy można stworzyć z tych długości trójkąt i nazywa ten trójkąt (tzn. ostrokątny, rozwartokątny, itd.). I tu występuje problem, a mianowicie gdy podam boki, to na końcu programu dodaje znaki, które oryginalnie w kodzie nie znajdują się.

#include <iostream>
#include <cstdio>
using namespace std;

 int a,b,c;
 char trojkat ()
{
    if(a<b+c&&b<a+c&&c<b+a)
        cout<<"Mozna stworzyc trojkat"<<endl;
        else{
            cout<<"Nie mozna stworzyc trojkata"<<endl;
        }
}
char trojkat_prostokatny()
{
    if((a*a)+(b*b)==c*c)
        cout<<"Trojkat jest prostokatny";
}
char trojkat_ostrokatny()
{
    if((a*a)+(b*b)>c*c&&(b*b)+(c*c)>a*a&&(c*c)+(a*a)>b*b)
        cout<<"Trojkat jest ostrokatny"<<endl;
}
char trojkat_rozwartokatny()
{
    if(a<b+c&&b<a+c&&c<b+a&&(a*a)+(b*b)<c*c)
        cout<<"Trojkat jest rozwartokatny";
}
char trojkat_rownoramienny(){
if(a<b+c&&b<a+c&&c<b+a&&b==c)
    cout<<"Trojkat jest rownoramienny";
}
int main()
{
    cout<<"Podaj dlugosc podstawy : "<<endl;
cin>>a;
cout<<"Podaj dlugosc jednego ramienia : "<<endl;
cin>>b;
cout<<"Podaj dlugosc drugiego ramienia : "<<endl;
cin>>c;
if(a==0||b==0||c==0)
{
    cout<<"Bok nie moze miec zerowej dlugosci"<<endl;
}
if (a==0&&b==0&&c==0)
{
    cout<<"Nie moze byc 0 :)"<<endl;
    return 0;
}
cout<<trojkat();
cout<<trojkat_prostokatny();
cout<<trojkat_ostrokatny();
cout<<trojkat_rozwartokatny();
cout<<trojkat_rownoramienny();
getchar();
return 0;
} 

Jak pisałem, nie jestem profesjonalistą i coś tam może być źle. A i używam programu CodeBlocks 13.12. Chciałbym pozbyć się tych znaków. Dołączam również screena, na którym jest działający program.

0

Zmień wartość zwracaną przez te funkcje na void.
Funkcja zwraca jakieś chary Ci.
i tak żeby żyło sie lepiej to inty wstaw do funkcji main, zmienne globalne to zło konieczne, i przekaż je poprzez argumenty.
btw. biblioteka conio.h to już niemal zabytek.

0
#include <iostream>
#include <cstdio>
using namespace std;

 int a,b,c;
 void trojkat ()
{
    if(a<b+c&&b<a+c&&c<b+a)
        cout<<"Mozna stworzyc trojkat"<<endl;
        else{
            cout<<"Nie mozna stworzyc trojkata"<<endl;
        }
}
void trojkat_prostokatny()
{
    if((a*a)+(b*b)==c*c)
        cout<<"Trojkat jest prostokatny";
}
void trojkat_ostrokatny()
{
    if((a*a)+(b*b)>c*c&&(b*b)+(c*c)>a*a&&(c*c)+(a*a)>b*b)
        cout<<"Trojkat jest ostrokatny"<<endl;
}
void trojkat_rozwartokatny()
{
    if(a<b+c&&b<a+c&&c<b+a&&(a*a)+(b*b)<c*c)
        cout<<"Trojkat jest rozwartokatny";
}
void trojkat_rownoramienny(){
if(a<b+c&&b<a+c&&c<b+a&&b==c)
    cout<<"Trojkat jest rownoramienny";
}
int main()
{
    cout<<"Podaj dlugosc podstawy : "<<endl;
cin>>a;
cout<<"Podaj dlugosc jednego ramienia : "<<endl;
cin>>b;
cout<<"Podaj dlugosc drugiego ramienia : "<<endl;
cin>>c;
if(a==0||b==0||c==0)
{
    cout<<"Bok nie moze miec zerowej dlugosci"<<endl;
}
if (a==0&&b==0&&c==0)
{
    cout<<"Nie moze byc 0 :)"<<endl;
    return 0;
}
trojkat();
trojkat_prostokatny();
trojkat_ostrokatny();
trojkat_rozwartokatny();
trojkat_rownoramienny();
getchar();
return 0;
}

Błąd polegał na tym, że funkcja zwracała (char) znak :p.

0

Dzięki bardzo :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1