读书人

一道C语言改错题小弟我求高手帮一下

发布时间: 2012-03-18 13:55:39 作者: rapoo

一道C语言改错题,我求高手帮一下
一.改错题(8分*2)
1.
1 #include<stdio.h>
2 double distance(double x1,double y1,double x2=0,double y2=0);
3 int main()
4 {
5 printf("%s%d","the distance is",double distance(2,3));
6 return 0;
7 }
8
9 double distance(double x1,double y1,double x2=0,double y2=0)
10{
11 double x,y;
12 x=x2-x1;
13 y=y2-y1;
14 return sqrt((x*x)+(y*y));
15}

尽量带一些解释,谢谢 哈哈^_^

[解决办法]

C/C++ code
printf("%s%d","the   distance   is",double   distance(2,3)); 改成printf("%s%lf","the   distance   is",distance(2,3)); 输出double类型用%lf,调用函数时不用写出返回类型
[解决办法]
C/C++ code
 printf("%s%d","the   distance   is",double   distance(2,3)); 改成 printf("%s%lf","the   distance   is",distance(2.0,3.0)); //传参的时候注意类型
[解决办法]
嘎嘎,偶来接点分
C/C++ code
//第一个错误,缺少头文件#include<math.h>#include <stdio.h> double   distance(double   x1,double   y1,double   x2=0,double   y2=0); //第2个错误,x2,y2 没有定义,改法:可以在main里面第一再传0值过去,也可以不要申明成double distance(double x1,double y1);然后在distance函数里定义x2,y2; int   main() { printf("%s%d","the   distance   is",double   distance(2,3)); //第三个错误,格式的错误,改法:printf("%s%f","the   distance   is",/*double 不要的,要了就错误了*/ distance(2,3)); return   0; } double   distance(double   x1,double   y1,double   x2=0,double   y2=0)//也属于第二个错误 { double   x,y; x=x2-x1; y=y2-y1; return   sqrt((x*x)+(y*y)); }
[解决办法]
#include <stdio.h>
#include "math.h"
double distance(double x1,double y1,double x2=0,double y2=0);
int main()
{
printf("%s%d",distance(2,3,1,2));
return 0;
}

double distance(double x1,double y1,double x2,double y2)
{
double x,y;
x=x2-x1;
y=y2-y1;
return sqrt((x*x)+(y*y));
}
改后的程序

读书人网 >C语言

热点推荐