- #1
USN2ENG
- 108
- 0
Homework Statement
I created a program that will calculate the factorial of the number entered and am having a hard time getting it to not accept decimals or fractions.
Code:
#include <iostream>
using namespace std;
int main (){
int q=0;
int number = 0;
cout<<"Please enter a positive whole number:"<<endl;
/*cin>>number;*/
while(!(cin>>number)||number<0){
cin.clear();
while(cin.get()!='\n'){ [B]/*Also, this was the only thing I could find to stop it from looping Invalid input endlessly but I am not sure exactly what this is doing, if anyone could explain that would help alot*/[/B]
continue;
cin>>number;
}
cout<<"Invalid Input"<<endl;
}
int x = number;
int y=1;
while(x>1){
y = y*x;
x--;
}
cout<<y;
return 0;
}
The Attempt at a Solution
I am 2 months into my first programming class ever and I can't seem to figure out how to get around the fact that if I enter '3.2' or '3/2' it will only look at the '3' and not the '.2', or '/2'. I would probably need to change the data type to float or something but then I am not sure how to use the input validation after that. I tried using isdigit(number) but that was not working either.
I have googled just about everything I could think of but I am not sure where to go. If anyone can point me in the right direction that would help immensely! Thanks!
Chuck