Witam,
mam problem z wprowadzanymi danymi w C.
Pytanie brzmi jak sprawić by program wyrzucił error przy wprowadzeniu czegokolwiek innego prócz liczby?
W tym przypadku kod polega na obliczeniu silni z danej liczby z przedziału od 1 do 20.
Wprowadzenie ciągu liter lub ciągu znaków w którym zawiera się cyfry sprawia że program wyrzuca Incorrect input, jednak w przypadku gdy wprowadzę coś w stylu "5gg"
program wyrzuca wynik z piątki czyli 120
#include <stdio.h>
long long factorial(int n);
int main() {
int n;
printf("Podaj liczbe ");
if (scanf("%d", &n) != 1) {
printf("Incorrect input\n");
return 1;
}
long long sumf = factorial(n);
if (sumf != -1) {
printf("%lld\n", sumf);
}
return 0;
}
long long factorial(int n)
{
long long sumf = 1;
if (n < 0 || n >= 21) {
printf("Incorrect input.\n");
return -1;
}
for (int i = 1; i <= n; i++) {
sumf *= i;
}
return sumf;
}