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

C++ funkcje problem z returnem.

0 głosów
683 wizyt
pytanie zadane 2 kwietnia 2020 w C i C++ przez Quba Użytkownik (870 p.)

Sprawa wygląda tak, że napisałem osobną własną bibliotekę matma.hpp i utworzyłem też plik źródłowy mający za zadanie obliczać różne operacje matematyczne korzystając właśnie z funkcji tej biblioteki.

Problem tkwi w tym, że zawsze jak korzystam z funkcji z bliblioteki matma.hpp z returnami na końcu to nie działają po prostu nic się nie wyświetla po podaniu danych, natomiat te bez returna czyli 5 i 6 funkcja działają poprawnie.

W tej funkcji szóstej umieściłem po coutach return c ale też się nie wyświetla.

Biblioteka:

#include <iostream>
#ifndef matma_hpp
#define matma_hpp
using namespace std;

double suma(double a, double b)
{
	return (a+b)*(a+b);
}

//------------------------------------------------------------

double roz_2(double a, double b)
{
	return a*a-b*b;
}

//------------------------------------------------------------

double obw_p(double a, double b)
{
	return 2*a+2*b;
}

//------------------------------------------------------------

double rzdz(int a, int b)
{
	return a%b;
}

//------------------------------------------------------------

double parz(int a,int b)
{
	int x=0, y=0;
	
	if(a%2==0&&b%2==0)
    {
	cout<<"Obie liczby sa parzyste.";
    }
	else if(b%2!=0&&a%2!=0)
    {
		cout<<"Obie liczby sa nieparzyste.";
	}
	else if(a%2!=0)
	{
		cout<<"Liczba "<<a<<" jest nieparzysta.";
	}
	else if(b%2!=0)
	{
		cout<<"Liczba "<<b<<" jest nieparzysta.";
	}
}

//------------------------------------------------------------

double ulamek(int a,int b)
{
    double c=double(a/b);
    
	if(a%b==0)
	{
        cout<<"Jest to ulamek rowny: ";
		return c;   	
	}
	else if(a<b)
	{
        cout<<"Jest to ulamek wlasciwy: ";
		return c;   	
	} 
	else if(a>b)
	{
        cout<<"Jest to ulamek niewlasciwy: ";
		return c;   	
	}  
}

#endif

A tutaj plik źródłowy:

#include <iostream>
#include "matma.hpp"
using namespace std;

int main()
{
    int b=0;
	double a, a1;
	
	cout<<"------------Witaj co chcesz obliczyc?------------";
	cout<<endl<<endl;	
	cout<<"Wpisz odpowiedni numerek operacji matematycznej, ktora cie interesuje";
	cout<<endl<<endl;
	cout<<"[Kwadrat sumy]     [Roznica kwadratow]     [Obwod prostokata]"<<endl;	
	cout<<"[Reszta z dzielenia]   [Parzystosc]   [Okreslenie ulamka]"<<endl<<endl;
	cout<<"                       Dostepne 1-6"<<endl<<endl;
    cout<<"                            ";cin>>b;
    
	cout<<endl;
	system("cls");
	cout<<"Wpisz liczby a i b: "<<endl;
	cin>>a>>a1;
	if(b=1)
	{
    suma(a,a1);
    }
	else if(b=2)
    {
	roz_2(a,a1);
    }
	else if(b=3)
    {
	obw_p(a,a1);
    }
	else if(b=4)
    {
	rzdz(a,a1);
    } 
	else if(b=5)
    {
	system("cls");
	cout<<"Podaj liczby a i b"<<endl;
	cin>>a>>a1;
	parz(a,a1);
    }
	else if(b=6)
    {
	system("cls");
	cout<<"Podaj liczby a i b"<<endl;
	cin>>a>>a1;
	ulamek(a,a1); 
    }
}

 

2 odpowiedzi

+1 głos
odpowiedź 2 kwietnia 2020 przez tkz Nałogowiec (42,040 p.)
wybrane 2 kwietnia 2020 przez Quba
 
Najlepsza
Funkcja ZWRACA, nie ma obsługuje funkcji wyświetlania, musisz użyć obiektu cout, albo czegoś analogicznego.

cout<<suma(1,4);
komentarz 2 kwietnia 2020 przez Quba Użytkownik (870 p.)

Dziękuje za odpowiedź smiley

0 głosów
odpowiedź 2 kwietnia 2020 przez DragonCoder Nałogowiec (36,500 p.)
double ulamek(int a,int b)
{
    double c=double(a/b);
     
    if(a%b==0)
    {
        cout<<"Jest to ulamek rowny: ";   
    }
    else if(a<b)
    {
        cout<<"Jest to ulamek wlasciwy: ";    
    } 
    else if(a>b)
    {
        cout<<"Jest to ulamek niewlasciwy: ";
    }  
   return c;
}
 
double parz(int a,int b)
{
    int x=0, y=0;
     
    if(a%2==0&&b%2==0)
    {
    cout<<"Obie liczby sa parzyste.";
    }
    else if(b%2!=0&&a%2!=0)
    {
        cout<<"Obie liczby sa nieparzyste.";
    }
    else if(a%2!=0)
    {
        cout<<"Liczba "<<a<<" jest nieparzysta.";
    }
    else if(b%2!=0)
    {
        cout<<"Liczba "<<b<<" jest nieparzysta.";
    }
}
 

skoro jest double, to powinno cos zwrocic,, a jak nie  to zmien to na void

double suma(double a, double b)
{
    return (a+b)*(a+b);
}

4 do pot 2 to 16

3 to pot 2 to 9, lacznei daje nam to 25. teraz 4+3 = 7, chyba nie musze dokanczac dalej

 

Czemu nei stworzyles matma.cpp, nie zainnkludowales matma .hpp i tam nei zrobiles definicji tych funkcji?

Dodaj cout w main albo w funckjach

komentarz 2 kwietnia 2020 przez Quba Użytkownik (870 p.)

Ok bardzo dziękuje za odpowiedź smiley

Podobne pytania

0 głosów
1 odpowiedź 1,123 wizyt
pytanie zadane 26 marca 2016 w C i C++ przez TheFeniks Gaduła (4,690 p.)
0 głosów
1 odpowiedź 559 wizyt
pytanie zadane 8 grudnia 2019 w C i C++ przez czowiek Początkujący (390 p.)
0 głosów
1 odpowiedź 2,374 wizyt
pytanie zadane 11 kwietnia 2018 w C i C++ przez antek782 Początkujący (490 p.)

93,753 zapytań

142,713 odpowiedzi

323,356 komentarzy

63,348 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...