c语言 要将一元钱换成1分,2分和5分的硬币,每种硬币的个数大于0,且为5的倍数,编写程序计算并输出有多

少种换法?
#include<stdio.h>
#include<math.h>
main()
{int s=100,a=5,b=2,c=1,x,y,z,n;
if(s=a*x+b*y+c*z&&x>0&&y>0&&z>0&&x%5==0&&y%5==0&&z%5==0)n=n+1;
printf("%d",n);
}
我是这样编的,怎么错了啊,要怎么改啊

首先刚开始的x,y,z的值没有确定,其次,x,y,z实际上是有范围的,所以我认为还是用for循环语句做比较好。
#include<stdio.h>
#include<math.h>
void main()
{
int x,y,z;
for(x=5;x<=100;x+=5)
for(y=5;y<=50;y+=5)
for(z=5;z<=20;z+=5)
if(x+2*y+5*z==100)
printf("%d %d %d\n",x,y,z);
}追问

这样啊,我的上面那个问题出在哪啊

追答

你刚开始并没有给x,y,z赋初值,所以s=a*x+b*y+c*z这条语句执行起来就比较困难。。

温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜