I need to limit the input from a user to only positive values, and count the number of digits in that number. The user will only type in a (+/-) whole number up to 9 characters long.
I’m only allowed to use the scanf function and for, while, or do-while loops.(I saw in similar questions how to do this using getchar, but I can only use scanf). I’m not allowed to use arrays, or any other library besides stdio.h and math.h
I know that if I write:
n=scanf(“%c%c%c%c%c”,&a,&b,&c,&e,&f);
n will count the number of successful scanf conversions.
The problem i’m having is that when I define the input with char, it does everything I want except that the user MUST enter 5 characters. So if the user wants to input “55” he has to press “5” “5” “enter” “enter” “enter”.
I need the program to move on after the first “enter” but also be flexible to receive a number up to 9 digits long.
again, I can’t use getchar or anything fancy. Just the really basic stuff in C that you learn in the first 2 weeks.
Use scanf to read the number into a
long int, then use a for loop with a /10 to count the number of digitsWhat do you want the program to do in case of a -ve number being entered?
(does not handle -ve numbers specially)