Miért nem működik?
Feladat: x^2+y^2=z^4 Az első találatot kell csak kiírnia a programnak. Pl.: 15^2+20^2=5^4; 225+400=625
(A gond, hogy nem akar belemenni az if-be. Miért?)
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
double result=0;
double e=0, E=0;
int z=0;
cout << "A program megtalalja az egyenlet (x^2+y^2=z^4) valtozoinak erteket." << endl;
for (int x=10; x<=20; x++)
for (int y=10; y<=20; y++)
{
result=pow(x,2)+pow(y,2);
e=exp(log(result)/4);
E=e-int(e);
if (E==1)
{
for (int z=1; z<=10; z++)
{
if (z==e)
{
cout << "x=" << x << endl;
cout << "y=" << y << endl;
cout << "z=" << e << endl;
cout << x << "^2+" << y << "^2=" << e << "^4" << endl;
cout << pow(x,2) << "+" << pow(y,2) << "=" << pow(e,4) << endl;
return 0;
}
}
}
}
}










Nem nagyon értek az ilyesmihez. Ilyen téren kezdőnek számítok. Tehát azt mondod elég néhány integer-t double-ra állítani és működni fog?
Kipróbáltam és sajnos így sem akar működni. :(





Túlbonyolítod a feladatot..
e=exp(log(result)/4);
4. gyököt lehet egyszerűbben is vonni:
pow(result, 0.25)
Lebegőpontos számok összehasonlításakor adj meg mindig egy epszilon tűrést, mert a számítási pontatlanságok miatt lehet hogy te amit 1-nek hiszel az valójában 0.999999 lett és akkor már nem egyenlő.
Ez itt mi akar lenni?
>E=e-int(e);
>if (E==1)
Mikor lesz az E == 1? Szerintem soha.
Nem tudom hogy mit akartál itt csinálni, de gondold újra.
Azt mondjuk én sem értettem, hogy az E miért lett 1, de amikor kipróbáltam a programot és beírtam egy cout-ot (cout << E;) az 1-et dobott ki 0 helyett.
E=e-int(e); pedig az akart lenni, hogy csak az egész számokra legyen érvényes a program és ne számolja bele a nem egész számokat.





A pow-ot gyokvonasra is hasznalhatod. Pl. pow(z, 0.25) az negyedik gyok.
Vagyis valami ilyent irhatsz:
for (int x = 1; x <= 20; ++x)
for (int y = x; y <= 20; ++y)
{
double z = std::pow(x * x + y * y, 0.25);
if (std::abs(z - std::round(z)) < 1E-6)
{
ird ki az eredmenyeket es pusztulj
}
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!