一个零钱拆分问题,即使规定为正数范围,其中一个数却还总是为负数
											原题:将一笔零钱(大于8分,小于100分)换成5分,2分,1分的硬币,每种硬币至少一枚。输入金额,问有几种换法?针对每种换法,输出各面额数量和总数量。
 程序代码:
程序代码:
#include<stdio.h>
int main()
{
    int n,one, two, five,i=0;
    printf("Enter n(8<=n<=100):");
    scanf("%d", &n);
    while(n<8 || n>100)
    {
        printf("Enter n(8<=n<=100):");
        scanf("%d", &n);
    }
    for (five = 1; five <= n / 5; five++)
    {
        for (two = 1; two <= n / 2; two++)
        {
            for (one = 1;;one++)
            {
                if (n == 5 * five + 2 * two + one&&one>0)
                {
                    i++;
                    printf("\n第%3d种       五分%2d个       两分%2d个       一分%2d个       共%2d个",i,five,two,one,five+two+one);
                    break;
                }
            }
            
        }
    }
    printf("共%d种方法", i);
    getchar();
    getchar();
    return 0;
}
可以看到第13-15出现了负数。



 
											





 
	    

 
	
