#include
#include
int main(){
int c1, c2, c5, cnt = 0;
printf("1元硬币有以下这些兑换方法:");
for(c1 = 0; c1 <= 100; c1++)
for(c2 = 0; c2 <= 50; c2++)
for(c5 = 0; c5 <= 20; c5++)
if(c1 * 1 + c2 * 2 + c5 * 5 == 100){
printf("%3d个1分硬币、%3d个2分硬币、%3d个5分硬币\n", c1, c2, c5);
cnt++;
}
printf("共有%d种兑换方法。\n", cnt);
return 0;
}
扩展资料:
1、printf()函数
printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。函数的原型为:
int printf(const char *format, ...);
函数返回值为整型。若成功则返回输出的字符数,输出出错则返回负值。
printf()函数的调用格式为:
printf("<格式化字符串>", <参量表>);
2、for循环
for循环小括号里第一个“;”号前为一个为不参与循环的单次表达式,其可作为某一变量的初始化赋值语句, 用来给循环控制变量赋初值; 也可用来计算其它与for循环无关但先于循环部分处理的一个表达式。
“;”号之间的条件表达式是一个关系表达式,其为循环的正式开端,当条件表达式成立时执行中间循环体。
参考资料来源:百度百科-for循环
参考资料来源:百度百科-printf()
1元=100分。
易得1分、2分、5分硬币的个数区间分别为[0,100]、[0,50]、[0,20]。
于是可用如下三层循环求解。
#include
#include
int main(){
int c1, c2, c5, cnt = 0;
printf("1元硬币有以下这些兑换方法:");
for(c1 = 0; c1 <= 100; c1++)
for(c2 = 0; c2 <= 50; c2++)
for(c5 = 0; c5 <= 20; c5++)
if(c1 * 1 + c2 * 2 + c5 * 5 == 100){
printf("%3d个1分硬币、%3d个2分硬币、%3d个5分硬币\n", c1, c2, c5);
cnt++;
}
printf("共有%d种兑换方法。\n", cnt);
return 0;
}
一元定义为100分。
然后,你说的兑换方法,就是
int i1=1,i2=1,i5=1;//分别代表个数
//循环读取,5分循环20次,2分50次,1分100次
for(int i=i1;i<20;i++)
{
for(int j=i2;j<50;j++)
{
for(int k=i5;k<100;k++)
{
if(100==1*k+2*j+5*i)
{
//这里面就是你要的兑换。满足条件就走这里。可以定义一个整型,记录一共多少种兑换方法,也可以定义一个数组分别保存这个i,j,k的值。这个具体的自己应该会写了。
}
}
}
}
main(){
int i1,i2,i5;
for (i1=1;i1<=100;i1++)
for (i2=1;i2<=50;i2++)
for (i5=1;i5<=20;i5++)
if (i1+i2*2+i5*5==100)
printf("一分硬币%d个 + 二分硬币%d个 + 五分硬币%d个\n",i1,i2,i5);
}
改正楼上的一点小错误.
main(){
int i1,i2,i5;
for (i1=0;i1<=100;i1++)
for (i2=0;i2<=50;i2++)
for (i5=0;i5<=20;i5++)
if (i1+i2*2+i5*5==100)
printf("一分硬币%d个 + 二分硬币%d个 + 五分硬币%d个\n",i1,i2,i5);
}