<1>引入模型:凑硬币
题目条件:用1角,两角,五角的硬币凑出10元金额:
(1)#include<stdio.h>
int main(){
int x;
int one,two,five;
scanf("%d",&x);
for(one=1;one<x10;one++){
for(two=1;two<x10/2;two++){
for(five=1;five<x10/5;five++){
if(one+two2+five5==x10){
printf("可以用%d个1角加%d个2角加%d个5角得到%d元\n",one,two,five,x);
}
}
}
}
return 0;
}
//第一种实例会罗列出多种可能,接下来改变要求,使其得出一种可能就结束运行。
- 注意:在跳出循环嵌套中运用的continue和break只能对他所在的那层循环做,不能一下跳出所有循环;
但我们也不能因此在每层循环后都加入break,(如果以这种情况直接加入break,无论以什么结果离开上一层循环,这个break都会让外面一层for循环被直接跳过)而是需要考虑满足某种情况时,一个break执行,接下来的break继续执行————所以此处我们应该引入if语句
(2)应用方法:接力break
#include<stdio.h>
int main(){
int x;
int exit;
int one,two,five;
scanf("%d",&x);
for(one=1;one<x10;one++){
for(two=1;two<x10/2;two++){
for(five=1;five<x10/5;five++){
if(one+two2+five5==x10){
printf("可以用%d个1角加%d个2角加%d个5角得到%d元\n",one,two,five,x);
exit=1;
break;
}
}
if (exit==1)break;
}
if(exit==1)break;
}
return 0;
}
(3)应用方法:goto语句运用
#include<stdio.h>
int main(){
int x;
int one,two,five;
scanf("%d",&x);
for(one=1;one<x10;one++){
for(two=1;two<x10/2;two++){
for(five=1;five<x10/5;five++){
if(one+two2+five5==x10){
printf("可以用%d个1角加%d个2角加%d个5角得到%d元\n",one,two,five,x);
goto out;
}
}
}
}
out:
return 0;
}