一道题目不会做,怎么做呢?
提示: 作者被禁止或删除 内容自动屏蔽
程序代码:/*******************************************************************************
现有1角币1张,2角币1张,5角币1张,1元币4张,5元币2张。用这些钱可以
付出不同的各种数额的币值有多少种.
根据题意写出这个程序,也不知道结果对不对,程序的思维也有些乱,还请大家
多多指教。谢谢。
*******************************************************************************/
#include<stdio.h>
int jianche(float *p,int k)/*用于检测是否出现相同的钱额*/
{
int i,j;
int fanhui=1;
for(i=0;i<k;i++)
for(j=i+1;j<k;j++)
if(p[i]==p[j]) return fanhui=0;
return fanhui;
}
int main(void)
{
float jiao[8]={0.0,0.1,0.2,0.3,0.5,0.6,0.7,0.8}; /* 角钱可能出现的币值 */
float yuan_1=1.0,yuan_5=5.0; /* 元钱 */
float zhong[200];/* 总额,用于检测是否有相同数值出现 */
int i,j,k,jishu=0;
for(i=0;i<8;i++)
for(j=0;j<5;j++)
for(k=0;k<3;k++)
{
if(!(i+j+k)) continue;
zhong[jishu]=jiao[i]+yuan_1*j+yuan_5*k;
if((jianche(zhong,jishu))&&zhong[jishu]!=0.0)
printf("总额%.2f=一元%d张+五元%d张+角%.2f元 ",
zhong[jishu],j,k,i);
if(!(jishu%2)) puts("");
jishu++;
}
printf("\n共有%d种付币方法\n",jishu);
getch();
}