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

时间:2013-09-21 12:34:39

标签: c

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

计算时间

但时间总是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 个答案:

答案 0 :(得分:4)

你使用的是整数(整数运算)而不是浮点数。

一个整数可以是四个字节,但不包含任何小数(0150035,但它不能是3.1251)。浮点数也是四个字节(大部分时间),并且包含小数(3.14),但浮点数的整体范围较低且难以预测。

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

试试这个:

float time, distance, speed;
time = distance / speed;

答案 1 :(得分:2)

您的速度和距离为int,因此您获得的时间为int。 e.g。

distance=5  speed=2  time=5/2为2.5,但为了使其int,它会被截断并变为2.

另外,我不知道您从timespeed distanceab分配值的位置。同时将timedistancespeed设为char并不是一个好主意。

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);

这应该可以正常工作。

答案 2 :(得分:0)

错别字:
你宣布timedistance&amp; speedchar 2.您正在ab存储距离和速度的输入 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);

}

答案 3 :(得分: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);
}`