第一种方法:接力break
# include<stdio.h>
int main()
{
int x=2;
int one,two,five;
int exit=0;
for(one=1;one<x*10;one++){
for(two=1;two<x*10/2;two++){
for(five=1;five<x*10/5;five++){
if(one+two*2+five*5==20){
printf("可以用%d个1角%d个2角%d个5角凑出%d元\n",one,two,five,x);
exit=1;
break;
}
}
if(exit) break;
}
if(exit) break;
}
return 0;
}
第二种方法:goto 标号
# include<stdio.h>
int main()
{
int x=2;
int one,two,five;
int exit=0;
for(one=1;one<x*10;one++){
for(two=1;two<x*10/2;two++){
for(five=1;five<x*10/5;five++){
if(one+two*2+five*5==20){
printf("可以用%d个1角%d个2角%d个5角凑出%d元\n",one,two,five,x);
goto out;
}
}
}
}
out:
return 0;
}
注:goto尽量只在从多重循环的最内层跳到最外层时使用