第一種方法:接力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儘量只在從多重循環的最內層跳到最外層時使用