0
#include<stdio.h>
#include<cs50.h>
#include<math.h>
int main()
{
float n;
do{ printf("change owed?\n");
n = get_float();
}while (n<0);
int z,a,b,c,d;
z = n*100;
a = z/25;
b = (z%25)/10;
c = ((z%25)%10)/5;
d = (((z%25)%10)%5)/1;
if(z>25)
{
printf("you will have %i quarter's'\n",a);
}
else if(z>10)
{printf("you will have %i dime's'\n",b);
}
else if(z>5)
{printf("you will have %i nickel's'\n",c);
}
else if(z>1)
{printf("you will have %i pennie's'\n",d);
}
{if(a>10)
{
printf("you will have %i dime's'\n",b);
}
else if(a>5)
{printf("you will have %i nickel's'\n",c);
}
else if(a>1)
{printf("you will have %i pennie's'\n",d);
}
{if(b>5)
{printf("you will have %i nickel's'\n",c);
}
else if(b>1)
{printf("you will have %i pennie's'\n",d);
}
{if(c>1)
{printf("you will have %i pennie's'\n",d);
}}}}
printf("you will get %i coin's'\n",a+b+c+d);
}
これは私が書いたコードです。else文で期待される式のエラーが発生する
正しく動作しますが、小さな論理エラーです。 0.32の場合は、他の硬貨ではなく四半期のみを表示します。何故ですか? 正常に動作します。それは最終的に硬貨の数の正しい値を与えるが、それはちょうど各硬貨の値を出していない。
なぜたくさんの '{' 'と '}'がありますか?また、コードを書式設定します。 – tkausl
入れ子のif文に使用しました。 –
いいえ、必要ありません。削除する必要があります。これはあなたのコードをはるかに読みやすくします。あなたのエラーは不要な中カッコから来ます。例えば 'else if(b> 1)'は 'if'を持たないブロックに属します。 – clemens