我想要达到的结果
想让它输出所有可能的结果可是它只出现了一组。
题目
班费问题
班长CoCo决定将剩余班费x元钱用于购买若干支钢笔进行奖励。商店里有三种钢笔,单价分别为6元、5元和4元。小Q想各种笔都购买,并且不再剩余钱。请帮小Q制定出一种买笔的方案。若无解(指所有方案都有剩余钱)则输出“No Answer”。
输入描述
班费x元
输出描述
有解(每种笔都需要购买)时依次输出6元、5元和4元钢笔各买支数。若无解(指所有方案都有剩余钱)则输出“No Answer”,输出不包含双引号。
前置条件
输入样例 1
35
输出样例1
1 1 6
1 5 1
2 3 2
3 1 3
输入样例 2
60
输出样例2
1 2 11
1 6 6
1 10 1
2 4 7
2 8 2
3 2 8
3 6 3
4 4 4
5 2 5
6 4 1
7 2 2
1
我的代码:
#include<stdio.h>
int main()
{
int x,i,j,k,a,b,c,d;
a=0;
b=0;
c=0;
scanf("%d",&x);
for(i=1;i<=x/6;i++)
{
a++;
for(j=1;j<=x/5;j++)
{
b++;
for(k=1;k<=x/4;k++)
{
c++;
if(6*a+5*b+4*c==x)
{
printf("%d %d %d",a,b,c);
printf("\n");
}
else
d++;
}
}
}
if(d==i+j+k)
printf("No Answer");
return 0;
}