-1
私はフィボナッチシーケンスのコードを(繰り返して)書いてきました。それは数nを走査し、-1を入力するまでF(n)を出力する。問題はまず、数値が整数でないかどうかを確認する必要があることです。整数でなければ、 "error"を出力するはずです。isdigitを使わずにCで整数が整数でないかどうかチェックする方法は?
#include<stdio.h>
#include<ctype.h>
int main(){
float n=0;
int x=0,ver=0,Fn=0,last1=0,last2=0;
scanf("%f",&n);
ver=n;
while(n!=-1){
if(n-ver!=0 || !isdigit(ver)){
printf("Error\n");
}
else if(n==1 || n==2){
printf("1\n");
} else{
last1=1;
last2=1;
for(x=3;x<=n;x++){
Fn=last1+last2;
last1=last2;
last2=Fn;
}
printf("%d\n",Fn);
}
getchar();
scanf("%f",&n);
ver=n;
}
return 0;
}
私はisdigitと!isdigitで試したところ、間違った出力を得ています。 .11 $、1.-、1.23、KDhfなどを入力するとエラーが出力されるはずです
整数を読んでみませんか?そうでないものを与えると、 'scanf'は失敗します。 –
@Someprogrammerdudeあなたはどういう意味ですか?申し訳ありませんが、私の英語は良くありません – Marelisse
'scanf'の戻り値を確認してください。 – BLUEPIXY