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

Problem z programem liczącym funkcję

Object Storage Arubacloud
0 głosów
153 wizyt
pytanie zadane 16 grudnia 2017 w C i C++ przez szym Nowicjusz (140 p.)

Pomoże ktoś? Program zawsze mi zwraca ten sam wynik niezależnie od wprowadzonych wartości...

#define _USE_MATH_DEFINES
#include<iostream>
#include<cmath>

using namespace std;
void f1(double score1)
{
	double solution;
	solution = 0;
	solution = score1 - pow(M_E, 3) + M_PI;
	cout << solution;

}
void multiplier(double x, double y)
{
	double score1;
	score1 = 0;
	score1 = (1 / 8) * sqrt(x + 2 * y);
	f1(score1);
}

int main()
{
	double x, y;
	cout << "Podaj x" << endl;
	cin >> x;
	cout << "Podaj y" << endl;
	cin >> y;
	multiplier(x, y);

	system("PAUSE");
	return 0;
}

 

1
komentarz 17 grudnia 2017 przez niezalogowany

Takie coś:

double solution;
solution = 0;
solution = score1 - pow(M_E, 3) + M_PI;

Możesz zapisać w jednej linii:

double solution = score1 - pow(M_E, 3.0) + M_PI;
komentarz 17 grudnia 2017 przez szym Nowicjusz (140 p.)
Problemem faktycznie była kwestia zapisu (1/8) zamiast (1.0/8.0). Dziękuję za pomoc.
komentarz 17 grudnia 2017 przez niezalogowany
Była już o tym odpowiedź, więc jedynie dopisałem komentarz z tipem jak polepszyć jakość kodu ;)

2 odpowiedzi

+1 głos
odpowiedź 17 grudnia 2017 przez Eryk Andrzejewski Mędrzec (164,260 p.)

Na pierwszy rzut oka strzelam:

(1 / 8)

Dzielisz przez siebie dwie wartości typu int, a więc wynik też będzie int (0).

Zapisz to w postaci 0.125 lub (1.0 / 8) - przynajmniej jeden operand musi być typu zmiennoprzecinkowego.

komentarz 17 grudnia 2017 przez szym Nowicjusz (140 p.)
Dzięki za odpowiedź.

Niestety problem nie leży po tej stronie, ponieważ wynik funkcji wciąż niezmiennie taki sam
0 głosów
odpowiedź 17 grudnia 2017 przez Dexterim Dyskutant (8,370 p.)

Pierwsza rzecz program nic Ci nie zwraca a jedynie wyświelta, druga możesz przypisywać wartość od razu przy deklaracji

double zmienna = 2;

I trzecia rzecz która jest pytaniem do Ciebie jaki jest wynik działania w funkcji multiplier

(1 / 8) ????

komentarz 17 grudnia 2017 przez szym Nowicjusz (140 p.)
W funkcji multipler Cały czas wychodzi 0 i już nie mam pomysłów dlaczego...
komentarz 17 grudnia 2017 przez Dexterim Dyskutant (8,370 p.)
ale co wychodzi 0?

Podobne pytania

0 głosów
2 odpowiedzi 545 wizyt
+1 głos
1 odpowiedź 221 wizyt
0 głosów
1 odpowiedź 753 wizyt
pytanie zadane 20 czerwca 2018 w C i C++ przez ksareks Nowicjusz (140 p.)

92,555 zapytań

141,404 odpowiedzi

319,557 komentarzy

61,940 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!

...