-2 c
#include<stdio.h>
#include<stdlib.h>
#define MINUTES_PER_HOUR 60
int main(void){
double distance, vel1, vel2;
double min_to_meet;
int hr_to_meet;
printf("enter the distance separating the trains?\n");
scanf("%1f", &distance);
printf("what is the speed of train 1?\n");
scanf("%1f, &vel1");
printf("what is the speed of train 2?\n");
scanf("%1f, &vel2");
hr_to_meet = distance/(vel1 + vel2);
min_to_meet = hr_to_meet*MINUTES_PER_HOUR;
printf("it will take %.31f minutes to meet.\n", min_to_meet);
printf("the first train will travel %.21f miles.\n", vel1*hr_to_meet);
printf("the second train will travel %.21f miles.\n", vel2*hr_to_meet);
system("pause");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我一直都是零,因为我的答案可以告诉我什么是错的?
你在呼唤scanf这样的
scanf("%1f, &vel2");
Run Code Online (Sandbox Code Playgroud)
但我想你想要
scanf("%lf", &vel2);
^
^
Run Code Online (Sandbox Code Playgroud)
同样地vel1.你还需要
scanf("%lf", &distance);
^
^
Run Code Online (Sandbox Code Playgroud)
不是它们之间的细微差别"%lf"(它应该用于扫描double- 你的变量是哪个)和你当前"%1f"用作第一个参数的传递scanf.
您当前调用的方式scanf将导致vel1并vel2保持未初始化状态,因为您的引号位于错误的位置.你的报价是在正确的位置,distance但你没有在scanf调用vel1和vel21. This makes your calculations forhr_to_meet`错误中进行此操作.
| 归档时间: |
|
| 查看次数: |
95 次 |
| 最近记录: |