c语言 程序错误检查

#include <stdio.h>
#include <math.h>

int main(void)
{
printf("City Distance\n");
printf("=================\n");

double a1, a2, b1, b2, r;

printf("Enter latitude of origin: ");
scanf("%lf", &a1);
printf("Enter longitude of origin: ");
scanf("%lf", &b1);
printf("Enter latitude of destination: ");
scanf("%lf", &a2);
printf("Enter longitude of origin: ");
scanf("%lf, &b2");

r = abs(b1 - b2);
d = arccos(sin(a1)*sin(a2)+cos(a1)*cos(a2)*cos(r))*6371;

printf("Air distance is %f", d);

return 0;
}

哪里错了 求指点 十分感谢

#include <stdio.h>
#include <math.h>

int main(void)
{
printf("City Distance\n");
printf("=================\n");

    double a1, a2, b1, b2, r, d; //d没有定义,加上

printf("Enter latitude of origin: ");
scanf("%lf", &a1);
printf("Enter longitude of origin: ");
scanf("%lf", &b1);
printf("Enter latitude of destination: ");
scanf("%lf", &a2);
printf("Enter longitude of origin: ");
scanf("%lf" , &b2);//引号位置错了

r = fabs(b1 - b2);//浮点求绝对值
    d = acos(sin(a1)*sin(a2)+cos(a1)*cos(a2)*cos(r))*6371; //反余弦是acos

printf("Air distance is %f", d);

return 0;
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-09-11
#include <stdio.h>
#include <math.h>

int main(void)
{
printf("City Distance\n");
printf("=================\n");

double a1, a2, b1, b2, r;

printf("Enter latitude of origin: ");
scanf("%lf", &a1);
printf("Enter longitude of origin: ");
scanf("%lf", &b1);
printf("Enter latitude of destination: ");
scanf("%lf", &a2);
printf("Enter longitude of origin: ");
scanf("%lf", &b2);//错误处 ,引号位置错了

r = abs((int)(b1 - b2));//错误处,将结果强转为Int型
double d = acos(sin(a1)*sin(a2)+cos(a1)*cos(a2)*cos(r))*6371;//错误处,此处d没有定义,前面加一个double即可 还有反余弦在c++里面不是arccos而是acos

printf("Air distance is %f", d);

return 0;
}

你在试试吧
第2个回答  2014-09-11
scanf("%d,%d",a,b);
scanf("%f,%f",c,d);
scanf("%ld,%ld",e,f);
scanf("%o,%o",u,v);
scanf("%c,%c",c1,c2); 里面的变量前面都要加&

printf里,变量前面都要去掉&,你搞反鸟~
第3个回答  2014-09-11
换行符错误,需要丢弃换行符
相似回答