關(guān)于輸入一個數(shù),由一角錢,兩角錢,五角錢湊出這個錢數(shù)的問題
#include<stdio.h>
int main()
{
? ? int b,c,d;
? ? int e=0;
? ? float a;
? ? float f;
? ? printf("請輸入一個數(shù)\na:");
? ? scanf("%f",&a);
? ? for(b=0;b<=a/0.1;b++)
? ? {
? ? ? ? for(c=0;c<=a/0.2;c++)
? ? ? ? {
? ? ? ? ? ? for(d=0;d<=a/0.5;d++)
? ? ? ? ? ? {
? ? ? ? ? ? ? ?f=0.1*b+0.2*c+0.5*d;
? ? ? ? ? ? ? ? if(f==a)
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? printf("%.1f元可以由%d個一角錢和%d個兩角錢和%d個五角錢組成",a,b,c,d);
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ? return 0;
}1.當(dāng)輸入2的時候發(fā)現(xiàn)少了b=0,c=10,d=0;b=20,c=0,d=0這兩種情況(b為一角錢的數(shù)量,c為兩角錢的數(shù)量,d為五角錢的數(shù)量),這是什么原因???
2.當(dāng)把自定義變量f去掉后,改為if(0.1*b+0.2*c+0.5*d==a)時,在輸入a=2;為什么只輸出b=0,c=0,d=4這一種情況?。?/p>
2018-06-21
#include<stdio.h>
int main()
{
int a=20,b, c, d;
int e ;
for (b = 0; b <= a / 1; b++)
{
for (c = 0; c <= a / 2; c++)
{
for (d = 0; d <= a / 5; d++)
{
if (a == 1 * b + 2 * c + 5 * d)
{
e = a / 10;
printf("%d元可以由%d個一角錢和%d個兩角錢和%d個五角錢組成\n", e, b, c, d);
}
}
}
}
return 0;
}
2018-06-21
#include<stdio.h>
int main()
{
int a=20,b, c, d;
int e ;
for (b = 0; b <= a / 1; b++)
{
for (c = 0; c <= a / 2; c++)
{
for (d = 0; d <= a / 5; d++)
{
if (a == 1 * b + 2 * c + 5 * d)
{
e = a / 10;
printf("%d元可以由%d個一角錢和%d個兩角錢和%d個五角錢組成\n", e, b, c, d);
}
}
}
2018-06-21
我改了下,驗證沒什么問題,用你的會出現(xiàn)問題,可能是浮點變整型有問題
2018-04-18
問題2:if(0.1*b+0.2*c+0.5*d==a)里的判定條件其實是(0.5*d==a)這部分= =;
問題1就比較鬼叼了,改成for(b=0;b<=a/0.1+1;b++)和for(b=0;b<a/0.1+1;b++)都可以,原代碼為什么不可以emmmm,同問
另外建議printf的時候加個\n不然真的辣眼睛233