0の入力が検出されるまで実数を入力することになっています。その後、プログラムは終了します。私はこのコードを整数データ型で機能させました:
#include<stdio.h>
int main()
{
int i;
int a[60];
for(i=0;i<60;i++)
a[i]=-1;
for(i=0;;i++)
{
scanf("%d",&a[i]);
if(a[i]==0)
break;
}
return 0;
}
しかし、doubleデータ型で同じコードを試してみると、0を入力してもプログラムの終了は発生しません。コードは次のとおりです。
#include<stdio.h>
int main()
{
int i;
double a[60];
for(i=0;i<60;i++)
a[i]=-1.0;
for(i=0;;i++)
{
scanf("%f",&a[i]);
if(a[i]==0.0)
break;
}
return 0;
}
なぜこれがそうなのか、誰かがわざわざ説明するだろうか?理由は思いつかない。前もって感謝します。