尽管广陵绝唱是俺的大恩人,但还是要修正一些错误!(不好意思啦)
我改正后及简化后的程序如下,声明:我也只是个beginner,还请各位路过的高手不要见笑,多多指教!程序代码:
#include"stdio.h" int jiance(float *p,int k) { int i; int fanhui=1; for(i=0;i<k-1;i++) if(p[i]==p[k-1]) fanhui=0; return fanhui; } int main(void) { float jiao[8]={0.0f,0.1f,0.2f,0.3f,0.5f,0.6f,0.7f,0.8f}; /* 角钱可能出现的币值 */ float yuan_1=1.0,yuan_5=5.0; /* 元钱 */ float zong[200];/* 总额,用于检测是否有相同数值出现 */ int i,j,k,count=0; for(i=0;i<8;i++) for(j=0;j<5;j++) for(k=0;k<3;k++) { zong[count]=jiao[i]+yuan_1*j+yuan_5*k; if((jiance(zong,count))&&zong[count]!=0.0) {printf("总额%.2f=一元%d张+五元%d张+角%.2f元\t", zong[count],j,k,jiao[i]);count++;} } printf("\n\n共有%d种付币方法\n",count); getchar(); }
[[it] 本帖最后由 fish7fish7 于 2008-8-3 20:53 编辑 [/it]]