C语言换零钱:把一元人民币兑换成硬币,共有多少种兑换方法?
答案:6 信息版本:手机版
解决时间 2019-10-07 06:29
已解决
2019-10-06 08:05
以下是我敲的代码,经Microsoft Visual C++编译后出现两处错误,一处警告,为什么呢?我纠不出来啊
#includeint main()
{
float a=0.1,b=0.5;
int count=1;
for(i=0;i<=10;i++)
{
for(g=0;g<=2;g++)
if(a*i+b*g==1)
count++;
}
printf("共有%d种兑换方法\n",count);
return 0;
}
最佳答案
2019-10-06 09:43
你程序中的问题:
1.i和g这两个循环控制变量要先声明才能使用。
2.count的初始值为0而不是1。
3.a*i+b*g == 1,浮点数不能用==和!=来比较。
帮你改了。
#include
int main()
{
int a, b, i, j, count;
a = 1;
b = 5;
count = 0;
for (i = 1; i <= 10; i++)
{
for ( j = 1; j <= 2; j++)
if(a*i+b*j == 10)
count++;
}
printf("共有%d种兑换方法\n",count);
return 0;
}
全部回答
1楼
2019-10-06 15:24
对我来说,最小面值的硬币就是一元了
2楼
2019-10-06 14:38
#include
int main()
{
int i, j, k, cnt = 0;
for (i = 0; i <= 10; i ++)
for (j = 0; j <= 10; j += 2)
for (k = 0; k <= 10; k +=5)
if (i + j + k == 10)
cnt ++;
printf("%d\n", cnt);
}
3楼
2019-10-06 13:43
int count=1; 改为 int count=0,i,g; 定义变量 i 和 g。
for(i=0;i<=10;i++) 改为 for(i=1;i<=10;i++) 优化
4楼
2019-10-06 12:09
for(int i = 0 后面不变
for(int g = 0 后面不变
#include
int main()
{
float a=0.1,b=0.5;
int count=1;
for(int i=0;i<=10;i++)
{
for(int g=0;g<=2;g++)
if(a*i+b*g==1)
count++;
}
printf("共有%d种兑换方法\n",count);
return 0;
}
5楼
2019-10-06 11:09
#include
#define SUM 10//定义总的钱
#define ONE 1//定义一角
#define FIVE 5//定义五角
int main()
{
int i;
int count = 0;//初始化为0
//控制循环数量,考虑兑换不会超过SUM/FIVE,
//所以可以以此控制循环次数,加快运行速度
for(i=0;i<=SUM/FIVE;i++)
if((SUM - FIVE*i)>=0)//判断,只要剩下的是大于等于0的硬币数,即满足要求
count++;
printf("共有%d种兑换方法\n",count);
return 0;
}
我要举报
如果感觉以上信息为低俗/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
大家都在看
推荐资讯