Autor Zpráva
Networker
Profil
Ahoj,
měl bych na Vás prosbu ohledně kódu psaném v DEV CPP (DEV C++)

Potřebuji ve výsledku udělat výpis hodnot ze vzorečku: 20(summ)k=0 for 0.1(pow k) / k!

Pro faktoriál mám toto:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(){
float k, fakt;
  printf("Number k: ");
  scanf("%f", &k);
fakt = 1;
while (k >= 1 ){
  fakt = fakt * k;
  k = k - 1;
  }
  printf("Faktorial: %f \n", fakt);
  system("pause");
  return(0);
} 

Pro a na "kátou"

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(){  
float a, k, i, end;
  printf("Number k: ");
  scanf("%f", &k);
a = 0.1;  
while (k >= 1 ){
  end = 1*pow(a, k);
  printf("Number %.0f: %f \n", k, end);
  k = k - 1;
  }  
  system("pause");
  return(0);
}  

Akorát mám následující problémy:
1. při faktoriálu třeba těch 20 mi to zobrazí špatné číslo...
2. Za desetinnou čárkou se mi zobrazuje jen pár míst (potřeboval bych hodnot spoustu)

No a teď to dát nějak dohromady a udělat sumu :-)
V JS se mi to nepovedlo, tak to zkouším v C++ ...
candiess
Profil
Networker:
V JS se mi to nepovedlo, tak to zkouším v C++ ...
Mohl by jsi zde postnout to "nepovedené" dílo? Rád bych se na to mrkl
Joker
Profil
Networker:
V JS se mi to nepovedlo, tak to zkouším v C++ ...
Původní vlákno: Výpočet sumy v JS

Hm: „Nechápu algoritmus - zkusím jiný programovací jazyk“. Překvapivě ten přístup moc nefunguje.

Co se týká kódu, nechápu, proč k a fakt jsou typu float, když faktoriál se počítá jen z celých čísel a výsledkem je taky celé číslo.
Navíc použití méně přesného float povede leda k tomu, že v nějaké chvíli vznikne zaokrouhlovací chyba a dalším násobením se ještě rozroste.
Což je tipuji důvod problému 1.

2. Za desetinnou čárkou se mi zobrazuje jen pár míst (potřeboval bych hodnot spoustu)
C++ float je přesný zhruba na 7 desetinných míst, double na 15, výpočty v plovoucí čárce v JS a PHP asi na 12-13 platných cifer.
Jan Tvrdík
Profil
Joker:
double na 15, výpočty v plovoucí čárce v JS a PHP asi na 12-13 platných cifer.
To je trochu divný ne? Vždyť PHP i JS používají naprosto stejný double jako C++. Nebo se mýlím?

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0