0

使用公式速度=距离/时间计算时间

但时间总是 0 我的输入是距离 = 10 和速度 = 5,我的输出必须 = 2

#include<stdio.h>
int main()
{
    int a, b, c, d;
    char time, distance, speed;

    printf("Enter Your distance ",a);
    scanf("%d", &a);
    printf("Enter Your speed ",b);
    scanf("%d", &b);

    time=distance/speed;
    printf("time is %d ",time);
}
4

4 回答 4

4

您使用的是整数(整数算术)而不是浮点数。

整数可以是四个字节,但不包含任何小数(0, 150035,但不能是3.1251)。浮点数也是 4 个字节(大多数情况下),并且确实包含小数 ( 3.14),但是,浮点数的整体范围更小且更难预测。

您还使用chars (1 字节)。1 字节 = 8 位,因此它们的最小值为 -128,最大值为 127。

尝试这个:

float time, distance, speed;
time = distance / speed;
于 2013-09-21T12:39:18.093 回答
2

你有速度和距离,int所以你得到的时间是int。例如

distance=5 speed=2 time=5/2这是2.5,但为了int使它被截断并变成2。

另外,我无法确定您将值分配给 的位置timespeeddistance读取的值。同时制作, , as似乎不是一个好主意。abtimedistancespeedchar

float time, distance, speed;

printf("Enter Your distance ");
scanf("%f", &distance);
printf("Enter Your speed ");
scanf("%f", &speed);
time=distance/speed;
printf("time is %f",time);

这应该可以正常工作。

于 2013-09-21T12:46:11.240 回答
0

错别字:
1. 你声明time, distance& speedas char
2. 您将距离和速度的输入存储在a和中b
3.printf("Enter Your distance ",a);不是有效的输入语法。

尝试这个

#include<stdio.h>
int main()
{
    double time, distance, speed;

    printf("Enter Your distance: ");
    scanf("%f", &distance);
    printf("Enter Your speed: ");
    scanf("%f", &speed);

    time=distance/speed;
    printf("time is %f ",time);

}
于 2013-09-21T12:35:57.460 回答
0

如果您要使用十进制输入并且想要获得十进制输出,您应该在浮点数中声明时间、距离和速度。

`#include<stdio.h>
int main()
{
    float time, distance, speed;
    printf("Enter Your distance: \n");
    scanf("%.2f\n", &distance);
    printf("Enter Your speed: \n");
    scanf("%.2f\n", &speed);
    time=distance/speed;
    printf("time is %.2f ",time);
}`
于 2018-07-03T08:56:35.080 回答