试图使用浮点数在C中对整数进行除法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了试图使用浮点数在C中对整数进行除法相关的知识,希望对你有一定的参考价值。

int main()

    int day,month,initial;
    int dumpster1,dumpster2;

    day = 20;
    month = 4;
    initial = "GM";
    month = month + 12;
    day = day + 30;
    float dumpster1 = 0.0;
    dumpster1 = (float)day/month;
    printf("%.1f",dumpster1);

我试图将日期除以月份并存储在dumpster1中,这是我的编程课的作业,如果有人可以帮助我,请谢谢。

答案

我发现的问题:

1。您正在声明具有不同数据类型的相同变量(第2行的int并在第9行的float,这使代码不明确。

2.char数据类型一次只能包含一个字符。您要声明两个(GM)。

解决方案:使用浮点数据类型声明一次dumpster1。并将两个字符保留在一个字符数据类型内。始终创建一个数组或使用字符串数据类型处理多个字符。

另一答案

我在不试图理解意图逻辑的情况下修复了代码,通过此修复,我认为您可以更新代码,以防万一它仍然无法按照您的意图执行:

#include <stdio.h>

int main()

// removing int initial declaration, as not needed. 
    int day,month;
//    Not needed declaration
//    int dumpster1,dumpster2;

    day = 20;
    month = 4;

// you'll need to define this as: 
// char initial[] = "GM";
//    initial = "GM";

    month = month + 12;
    day = day + 30;
    float dumpster1 = 0.0;
    dumpster1 = (float)day/month;
    printf("%.1f",dumpster1);

让我们看一下代码:您需要#include <stdio>才能使用printf,因为该功能已在该标准库中实现。

不需要[int dumpster1,dumpster2;,因为您在

第13行中将dumpster1声明为float,否则将导致dumpster1出现双重声明冲突类型错误。 dumpster2从未使用过,因此无用的声明。

最后一件事情:initial = "GM";从未使用过,所以我不知道为什么要定义它。但是,如果要定义此值以供以后使用,则需要将其定义为char initial[] = "GM";

希望您能更好地理解作业。

以上是关于试图使用浮点数在C中对整数进行除法的主要内容,如果未能解决你的问题,请参考以下文章

js 后端返回浮点数,前端用乘法或者除法处理,得到超常值

Django的带除法的注释计数返回整数而不是浮点数

Linux上整数和浮点数的运算

整数,浮点数和布尔类型

为啥整数除法产生一个浮点数而不是另一个整数?

在 C 中的某些整数上使用位操作中断将整数转换为浮点数