使用公式速度=距离/时间
计算时间但时间总是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);
}
答案 0 :(得分:4)
你使用的是整数(整数运算)而不是浮点数。
一个整数可以是四个字节,但不包含任何小数(0
,150035
,但它不能是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.
另外,我不知道您从time
,speed
distance
,a
和b
分配值的位置。同时将time
,distance
,speed
设为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)
错别字:
你宣布time
,distance
&amp; speed
为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);
}
答案 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);
}`