编写程序输出用一元人民币兑换成1分、2分和5分硬币的不同兑换方法

用C语言编写的程序怎么写?

#include <stdio.h>

#include <stdlib.h>

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个回答  2015-09-04

1元=100分。

易得1分、2分、5分硬币的个数区间分别为[0,100]、[0,50]、[0,20]。

于是可用如下三层循环求解。


#include <stdio.h>
#include <stdlib.h>

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;
}

第2个回答  2008-11-05
一元定义为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的值。这个具体的自己应该会写了。
}
}
}
}
第3个回答  2008-11-05
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);
}本回答被网友采纳
第4个回答  2008-11-05
改正楼上的一点小错误.
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);
}
相似回答