Jskey1876
2019-03-25 16:49
采纳率: 84.6%
浏览 576

使用C设计一个简单的ATM机吐钱算法。

输入数(提款金额)必须是20的正整倍数。
ATM机此时只会吐出20和50两种金额的纸币。
满足50元面额输出时,优先使用50元面额输出。
零头使用2面额输出。
无需复杂,只要有scanf和printf两个函数就OK了

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • blownewbee 2019-03-25 16:55
    已采纳
    #include "stdio.h"
    int main()
    {
    int n;
    scanf("%d", &n);
    if (n % 20 != 0)
    {
    printf("必须是20的倍数");
    return;
    }
    while (n > 0)
    {
    if ((n - 50) % 20 == 0 && n >= 50)
    {
    printf("50\n");
    n -= 50;
    }
    else
    {
    printf("20\n");
    n -= 20;
    }
    }
    }
    
    点赞 评论
  • a81836620 2019-03-25 16:58
    #include<stdio.h>
    int main()
    {
        int n;//金额
        scanf("%d",&n);//输入金额
        if(n%20==0){
            while(n!=0){
                while(n/50!=0){
                    printf("50元\n");
                    n-=50;
                }
                while(n/20!=0){
                    printf("20元\n");
                    n-=20;
                }
            }
        }else{
            printf("请输入20的整数倍金额\n");
        }
        return 0;
    }
    
    点赞 评论
  • qq_26947421 2019-03-25 18:39

    #include "stdio.h"
    int main()
    {
    int n,n50,n2;
    scanf("%d", &n);
    if(n == 0)
    {
    printf("The amount you input is 0. Try again. ");
    return 0;
    }
    if (n % 20)
    {
    printf("The amount you input must be multiple of 20. Try again. ");
    return -1;
    }
    n50=n/50;
    n2=(n-50*n50)/2;
    if (n50)
    {
    if (n50 >1)
    {
    printf("Output %d pieces of 50 dollar note.\n, n50");
    }
    else
    {
    printf("Output 1 piece of 50 dollar note.\n");
    }
    }
    if (n2)
    {
    if (n2 >1)
    {
    printf("Output %d pieces of 2 dollar note.\n, n2");
    }
    else
    {
    printf("Output 1 piece of 2 dollar note.\n");
    }
    }
    }

    点赞 评论

相关推荐 更多相似问题