C++ factorial program give infinity for any number greater than 2 -


so it's 5:00 a.m. , confused , frustrated hell. i've created program before can't understand going on.

i've created simple factorial program , have double checked logic, every time enter number greater 2 program goes loop printing out "inf". can't see wrong program itself. :(

#include <iostream>  using namespace std;  int main() {     double usernumber = 0;     double = 1;      cout << "this program calculate factorial of number enter.\nplease enter number now: ";     cin >> usernumber;      ( = 1; < usernumber; i++ ) {         usernumber *= i;         cout << usernumber; }      cout << "\n\nthe factorial " << usernumber << "." << endl;      return 0; } 

it works 1 , 2:

enter image description here

but 3 or greater....

enter image description here

i haven't created c++ program in while can't life of me see wrong. super obvious syntax error, or computer breaking down on me?

edit: changed numbers double int , got:

enter image description here

i still don't understand why doing this. don't see problem loop, or else...

argh. smashes head desk

change

for ( = 1; < usernumber; i++ ) { 

to

for ( = usernumber - 1; > 1; --i ) { 

note code changes usernumber in loop body, loop terminate if usernumber overflows.


Comments

Popular posts from this blog

windows - Single EXE to Install Python Standalone Executable for Easy Distribution -

c# - Access objects in UserControl from MainWindow in WPF -

javascript - How to name a jQuery function to make a browser's back button work? -