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:
but 3 or greater....
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:
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
Post a Comment