゛迃幵ぅ494 2021-11-21 12:02 采纳率: 40%
浏览 20
已结题

想让它输出所有可能的结果可是它只出现了一组。c语言练习题

我想要达到的结果

想让它输出所有可能的结果可是它只出现了一组。
题目
班费问题
班长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;
}

  • 写回答

1条回答 默认 最新

  • 聂 可 以 2021-11-21 12:05
    关注

    不用a++之类的,直接6i加5j+4k等于x

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月29日
  • 已采纳回答 11月21日
  • 创建了问题 11月21日

悬赏问题

  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号