Zdravím, absolutně nechápu, proč při porovnávání proměnné "a" a "sum" propustí přes podmínku program i čísla, pro které podmínka neplatí, vím, že program dělá vždy co člověk napíše, ale teď vážně nevím, protože podmínka špatně napsat nejde jde jen o rovnost dvou čísel....přikládám kód budu rád za cokoliv....omlouvam se za syntaxi, opět jsem zvolil středověkou metodu, protože jsem hledal chybu...-)
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
unsigned long long int a, b, c, d;
int pole[918];
pole[0] = 2;
int n = 1;
int p = 0;
for (a=2;a<100;a++)
{
int odm;
odm = sqrt(a);
for (b=2;b<=odm;b++)
{
if ((a % b) == 0)
{
break;
}
if (b == odm)
{
pole[n] = a;
n++;
}
}
}
for (a=1;a<50;a++)
{
for (b=0;b<n;b++)
{
for (c=0;c<n;c++)
{
for (d=0;d<n;d++)
{
unsigned long long int dm;
dm = (pole*pole);
unsigned long long int tm;
tm = (pole[c]*pole[c]*pole[c]);
unsigned long long int cm;
cm = (pole[d]*pole[d]*pole[d]*pole[d]);
unsigned long long int sum = (dm + tm + cm);
if (sum > a)
{
break;
}
if (sum == a);
{
cout << dm << " " << tm << " " << cm << "\n";
cout << "sum: " << sum << "\n";
cout << "pole: " << pole << " ";
cout << "pole[c]: " << pole[c] << " ";
cout << "pole[d]: " << pole[d] << " ";
p++;
cout << a << "\n";
d = n;
c = n;
b = n;
break;
}
}
}
}
}
cout << "vysledek: " << p << "\n";
cin.get();
return 0;
}
Fórum › C / C++
Iracionálně se chovající program :-((
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 34 hostů
Moderátoři diskuze