
银行换零钱。假定你拿1张百元钞票到银行换零,要求是必须换成若干张20元、10元和5元。请编写程序 15
从问题的角度分析我们可以用三重循环来就求解答案。但是我们可以优化我们的循环。因为20元的最多有5张,10元的最多有10张,5元的最多有20张。同时我们求出20元的和10元的张数,进而设计出算法。
程序运行的部分结果为0张20元,0张10元,20张5元、0张20元,1张10元,18张5元、0张20元,2张10元,16张5元、0张20元,3张10元,14张5元、0张20元,4张10元,12张5元、0张20元,5张10元,10张5元、1张20元,5张10元,6张5元。
#include<stdio.h>
int main(){
int x=0,ten=0,five=0;
int count=100;
for(x=0;x<=5;x++){
for (ten=0;ten<=10;ten++){
for(five=0;five<=20;five++){
if((x*20+ten*10+five*5)==count){
printf("%d张20元,%d张10元,%d张5元\n",x,ten,five);
}
}
}
}
}
扩展资料:
循环结构可以减少源代码重复书写的工作量,用来书写某段重复执行算法的问题,这是程序设计中最能发挥计算机特长的程序结构,C语言中提供四种循环,即goto循环、while循环、do while循环和for循环。
一般不提倡用goto循环,因为强制改变程序的顺序经常会给程序的运行带来不可预料的错误。
特别要注意在循环体内应包含趋于结束的语句(即循环变量值的改变),否则就可能成了一个死循环,这是初学者的一个常见错误。
for(表达式1;表达式2;表达式3)循环体语句 。(其中;不能省略)。
常见的两种循环结构:
①当型循环:先判断所给条件p是否成立,若p成立,则执行A(步骤);再判断条件p是否成立;若p成立,则又执行A,若此反复,直到某一次条件p不成立时为止。
②直到型循环:先执行A,再判断所给条件p是否成立,若p不成立,则再执行A,如此反复,直到p成立,该循环过程结束。