C语言换零钱:把一元人民币兑换成硬币,共有多少种兑换方法?

来自:安全知识    更新日期:早些时候
C语言编程 零钱兑换~

题目我没怎么看懂,比如说你写的i+j+l==k,那题目中的40放在哪里?
另外我要说的一个大问题,也是就是float的用法,float的值是小数,电脑的算法是近似值。
举个例子,
float a = 1;
b = a/10;
按道理b此时是0.1,但是你输出的由于编译器的不同有可能是 0.10000000000001,也有可能是0.09999999999999.也有可能是0.1。当出现这种情况,你的if中的判断就永远不会实现。
所以你的if可以比较大小判断,比如if(x==5)写成((x>4.9999)&&(x<5.00001))或者不要出现float,所有的数值乘以10,把小数去除。

#include void func(int n){ int v1, v2, v5; int ,i, j, k; int num; v1 = 1; v2 = 2; v5 = 5; num = 0; for (i = 1; i = 8 && n <= 100) { func(n); } return 0 ;}

#include<stdio.h>
#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;
}

你程序中的问题:
1.i和g这两个循环控制变量要先声明才能使用。
2.count的初始值为0而不是1。
3.a*i+b*g == 1,浮点数不能用==和!=来比较。

帮你改了。
#include<stdio.h>
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;
}

for(int i = 0 后面不变
for(int g = 0 后面不变

#include<stdio.h>
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;
}

int count=1; 改为 int count=0,i,g; 定义变量 i 和 g。

for(i=0;i<=10;i++) 改为 for(i=1;i<=10;i++) 优化

对我来说,最小面值的硬币就是一元了

i,j不应该由0开始么?
嗯,应该从0开始。没注意呵呵


C语言换零钱:把一元人民币兑换成硬币,共有多少种兑换方法?视频

相关评论:
  • 18341254041C语言编程:某人想将手中一张面值100元的人民币换成5元、1元和0.5元面...
    毛态俗操作如下:#includemain(){int i,j,k,c=0;for(i=1; ifor(j=1; jk=100-i-j;if(i*5+j+0.5*k==100){c++;printf("%d %d %d\\n",i,j,k);}}printf("c=%d\\n",c);}拓展资料:一、C语言是一种计算机编程语言。它兼具高级语言和汇编语言的特点。它可以用作编写工作系统应用...

  • 18341254041c语言 零钱换整钱
    毛态俗include <stdio.h> include <stdlib.h> int main(){ int x,y,z,i,sum;sum=0;for(i=1;i>0;i++){ if(i%180==0){ x=i\/18;y=i\/15;z=i\/20;} sum=x+5*y+10*z;if(sum%100==0){ printf("%d,%d,%d,%d\\n",x,y,z,sum\/10);break;} } return 0;} ...

  • 18341254041急求一个c语言源代码关于找零钱问题的
    毛态俗我们知道人民币有1、2、5、10、20、50、100这几种面值。现在给你n(1≤n≤250)元,让你计算换成用上面这些面额表示且总数不超过100张,共有几种。include<stdio.h> int main(){int a,b,c,d,e,f,g,n,count=0;printf(" please input n:\\n");scanf("%d",&n);for(a=n\/100;a>=0...

  • 18341254041C语言 换分币 用一百元人民币换成1元 5元和10元 共有多少种兑换方法
    毛态俗1、遇到这种题目,我们首先要区分的概念是钱数和张数。这个问题我可以说大家伙都是明白的,但是用计算机来表达并不容易,是很有难度的。所以,在这种情况下,我们可以设置更多变量以使其易于查看,接着清空你的思绪。将100元换成1元、5元和10元。最简单的零钱是10元。因为 10 是 1、5、10 的最...

  • 18341254041c语言 找零钱问题,谢谢
    毛态俗这很容易。先输入n值,然后从最大面值的人民币开始减。例如:我有238元 减最大面值的第一个。238-100=138。结果为正数且不为零。然后记录100元张数的变量加1(这些变量都应初始化时为0)继续,138-100=38.结果正数且不为零,同上100面值变量加1,38-100。结果小于零。不再用100面值的减。

  • 18341254041C语言初学者问题,零钱换整钱
    毛态俗我想你应该能看懂)。ps:其实不用简化,但是简化之后为16x=180n,即x=11.25n 设变量x,n,x和n都为整数(就是int类型),做for循环(就是n=1开始循环,输出x\/1.8,x\/1.5,x\/2,10n),我用数学方法算x的最小值90,n最小值8.也就是一角50个,五角60个,一元45个,总金额为80元 ...

  • 18341254041c语言零钱换整钱,如果没有方法则无法交换 不知道elseprintf("no change...
    毛态俗if(x+y*5+z*10==100*n){ \/* 这里增加{} *\/ printf("%d,%d,%d\\n",x,y,z);j++;}

  • 18341254041c语言问题:零钱换整钱 帮忙改一下,谢谢!!
    毛态俗你的程序没有问题。输入8、16试试。另外,最好把a*0.1+b*0.5+c==n*10改成a+b*5+c*10===n*100 反正我是这么改了。

  • 18341254041把一元钱换成5分,2分,1分d的零钱,统计共有多少种方法
    毛态俗面向对象时,C++ 可以在程序任何地方定义变量,编译器会确定变量的生命周期,释放变量。而C 只能在函数开始申明需要使用的变量,函数结束时释放他们。 这句话应该可以解释你的问题了!呵呵! 所以你的问题只存在于C语言(.c)中,C++(.cpp)没有这个问题。

  • 18341254041c语言问题 将10元钱换成5角,2角,1角的零钱,要求每种零钱至少有...
    毛态俗是因为屏幕显示不下了.include<stdio.h> void main(){ int c5,c2,c1;freopen("C:\\\\a.txt","w",stdout);\/\/输出到C盘的a.txt下可以看到全部 for(c5=1;c5<20;c5++)for(c2=1;c2<50;c2++)for(c1=1;c1<100;c1++)if(c5*5+c2*2+c1==100)printf("%d %d %d \\n",c5,c2,c1);...

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网