关于C语言的一个程序

来源:百度知道 编辑:UC知道 时间:2024/06/27 08:23:51
#include <stdio.h>
#include <string.h>
#define a 3.785
#define b 1.609
int main(void)
{
char gallon, mile;
long double m, n, x, y;
printf("how many miles have you traveled?\n");
scanf("%d",&mile);
printf("how many gallon of gasoline have you consumed?\n");
scanf("%d",&gallon);
m = mile / gallon;
printf("So the mile-per-gallon is %lld.\n",m);
x = gallon * a ;
y = mile * b ;
n = x / y;
printf("So the liters-per-100-km is %lld.\n",n);

getch ();
return 0;
}

要求每加仑的公里数 和每百千米的升数。。。帮我看看哪错了
就是 c primer plus 第四章 第7题
他就是调试结果不正确,一堆大的无比的整数

既然是C
就不应该用getch,应该是getchar

getch (); ---改成getchar();

下面是调试正确的

#include <stdio.h>
#include <string.h>
#define a 3.785
#define b 1.609
int main(void)
{
char gallon, mile;
long double m, n, x, y;
printf("how many miles have you traveled?\n");
scanf("%d",&mile);
printf("how many gallon of gasoline have you consumed?\n");
scanf("%d",&gallon);
m = mile / gallon;
printf("So the mile-per-gallon is %lld.\n",m);
x = gallon * a ;
y = mile * b ;
n = x / y;
printf("So the liters-per-100-km is %lld.\n",n);

getchar(); //改正
return 0;
}

你的错误在数据类型上面,仔细检查下吧
你的字符型,整型,浮点型 任意赋值了
例如:char gallon, mile;scanf("%d",&mile); scanf("%d",&gallon);输入整数可能越界

你的宏定义中有浮点型的 输出的怎么都是整型!?
还有你说的什么地方错了啊?是调试成功达不到你的预想的结果还是更本无法调试啊?<