-3
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <ctype.h>
int main()
{
float a;
float b;
float gr;
gr = (1 + sqrt(5))/2;
gr = floorf(gr*1000 + 0.5)/1000;
printf("Enter two numbers: ");
scanf("%f %f", &a, &b);
if(isalpha(a) || isalpha(b))
{
printf("\nInvalid input.\n");
exit(0);
}
float result = a/b;
if(floorf(result*1000+0.5)/1000 != gr)
{
float temp;
temp = a;
a= b;
b = temp;
result = a/b;
}
result = floorf(result*1000+0.5)/1000;
if(result == gr)
{
printf("\nGolden ratio!\n");
} else if(result != gr) {
printf("\nMaybe next time.\n");
}
return 0;
}
一切正常,除了「如果(因而isalpha(一)||因而isalpha(B))」的部分.. 罰款我要讓程序檢查用戶輸入是否是數字 但是當我運行它並輸入a和b時,它打印出「可能下一次」, 不是「無效輸入」... 任何幫助將感激!如何檢查,如果它是一個數字或不是在C
一個好的開始將是看看['scanf'](http://en.cppreference.com/w/c/io/fscanf)*返回*。 –
可能重複[如何檢查輸入是否是一個數字或不在C?](https://stackoverflow.com/questions/17292545/how-to-check-if-the-input-is-a-number -or-in-c) – jkp
我還沒有得到如何解決這個問題......你能給我一個主意嗎? –