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

VPS Starter Arubacloud
0 głosów
152 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 539 wizyt
+1 głos
1 odpowiedź 215 wizyt
0 głosów
1 odpowiedź 743 wizyt
pytanie zadane 20 czerwca 2018 w C i C++ przez ksareks Nowicjusz (140 p.)

92,452 zapytań

141,262 odpowiedzi

319,085 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...