• 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ę

Aruba Cloud PRO i VPS, Openstack, VMWare, MS Hyper-V
0 głosów
126 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 (165,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 330 wizyt
+1 głos
1 odpowiedź 68 wizyt
0 głosów
1 odpowiedź 526 wizyt
pytanie zadane 20 czerwca 2018 w C i C++ przez ksareks Nowicjusz (140 p.)

90,900 zapytań

139,572 odpowiedzi

313,905 komentarzy

60,373 pasjonatów

Motyw:

Akcja Pajacyk

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

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...