我在C中没有得到除法的正确结果[关闭]

kb5ga3dv  于 2023-10-16  发布在  其他
关注(0)|答案(1)|浏览(76)

已关闭此问题为not reproducible or was caused by typos。它目前不接受回答。

此问题是由打印错误或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这一个是解决的方式不太可能帮助未来的读者。
28天前关闭
Improve this question
这是一个基本的c代码,我必须计算出支付一笔钱所需的最小门票数量,但在第一次除法中,我得到的结果是2400000

#include <stdio.h>

int main(void)
{
    int money;
    int ticket_20 = money/20;
    int ticket_10 = (money - 20*ticket_20)/10;
    int ticket_5 = (money - 20*ticket_20 - 10*ticket_10)/5;
    int ticket_1 = (money - 20*ticket_20 - 10*ticket_10 - 5*ticket_5);

    printf("Enter an amount: ");
    scanf("%d", &money);
    printf("20$ TICKET: %d\n", ticket_20);
    printf("10$ TICKET: %d\n", ticket_10);
    printf("5$ TICKET: %d\n", ticket_5);
    printf("1$ TICKET: %d\n", ticket_1); 

    return 0;
}
oyt4ldly

oyt4ldly1#

你可以通过简单地在变量声明中初始化一个零来纠正这个问题,比如#intmoney =0;或者将用户输入置于变量声明“money”之下。下面是正确的程序代码在一个简单的方式:

#include <stdio.h>
int main(void)
{
    int money=0;
    printf("Enter an amount: ");
    scanf("%d", &money);
    int ticket_20 = money/20;
    int ticket_10 = (money - 20*ticket_20)/10;
    int ticket_5 = (money - 20*ticket_20 - 10*ticket_10)/5;
    int ticket_1 = (money - 20*ticket_20 - 10*ticket_10 - 5*ticket_5);
    printf("20$ TICKET: %d\n", ticket_20);
    printf("10$ TICKET: %d\n", ticket_10);
    printf("5$ TICKET: %d\n", ticket_5);
    printf("1$ TICKET: %d\n", ticket_1);
    return 0;
}

下面是附件中代码的示例输出:Click here to view the output:

相关问题