0%

函数练习题

实验七 函数

基础

3.编写一个函数,接收两点的坐标,计算并返回这两点之间的距离。建议函数原型:double Distance(int x1 , int y1 , int x2 , int y2) ;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//实验七 基础3
#include <stdio.h>
#include "math.h"
/*编写一个函数,接收两点的坐标,计算并返回这两点之间的距离。建议函数原型:
double Distance(int x1 , int y1 , int x2 , int y2) */
double Distance(int x1,int y1,int x2,int y2);//函数声明
double Distance(int x1,int y1,int x2,int y2){//函数定义,包含三个形参
int x_chazhi; //函数主体
int y_chazhi;
x_chazhi=(x1-x2);
y_chazhi=(y1-y2);
return sqrt(x_chazhi*x_chazhi+y_chazhi*y_chazhi);//返回两点之间的距离
}
int main() //main()函数
{
double jieguo;int x1,y1,x2,y2;
x1=0;y1=0;x2=1;y2=1;
jieguo=Distance(x1, y1, x2, y2); //实现两次函数调用,将返回值存储在变量jieguo中,并输出结果
printf("(%d,%d)到(%d,%d)的距离是:%lf\n",x1,y1,x2,y2,jieguo);
x1=2;y1=3;x2=5;y2=4;
jieguo=Distance(x1, y1, x2, y2);
printf("(%d,%d)到(%d,%d)的距离是:%lf\n",x1,y1,x2,y2,jieguo);
}
/*输出结果为:
(0,0)到(1,1)的距离是:1.414214
(2,3)到(5,4)的距离是:3.162278
*/

进阶

7.写一个函数:求一个实数的整数次幂。

在主函数main中输入一个实数 x 和正整数m,调用该函数求这个实数 x 的m次幂。要求该函数能够正确地计算负幂。同时,该函数实现 0 的任何次幂为 0 ,并 且任何数值的 0 次幂为 1 。使用循环方法实现。建议函数原型:double Power(double dblRealNumber , int intPositiveNumber) ;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
//实验七 进阶7
#include "hanshu.h"//"stdio.h"在hanshu.h中
#include "stdlib.h"
double Power(double dblRealNumber,int intPositiveNumber);//函数声明
double Power(double dblRealNumber,int intPositiveNumber){//函数定义
double jieguo=0,jieguo1=0;int i=1; //函数体
if (dblRealNumber==0) { //实现0的任何次幂为0
jieguo=0;
}
else if ((dblRealNumber!=0)&&(intPositiveNumber==0)){//实现非零实数x的0次幂为1
jieguo=1;
}
else if (intPositiveNumber>0){ //使用循环,计算出n>0时n次幂的结果
jieguo=1;
while (i<=intPositiveNumber) {
jieguo=jieguo*dblRealNumber;
i++;
}
}
else{
jieguo1=1;
while (i<=abs(intPositiveNumber)) { //使用循环,计算出n<0时n次幂的结果
jieguo1=jieguo1*dblRealNumber;
i++;
}
jieguo=1/jieguo1;
}
return jieguo;
}
int main() //调用函数,对函数的各个功能进行检测
{ double jieguo,x;int n;
x=2;n=2;
jieguo=Power(x,n);
printf("%.2lf的%d次方结果是:%.2lf\n",x,n,jieguo);
x=2;n=-2;
jieguo=Power(x,n);
printf("%.2lf的%d次方结果是:%.2lf\n",x,n,jieguo);
x=-2;n=-2;
jieguo=Power(x,n);
printf("%.2lf的%d次方结果是:%.2lf\n",x,n,jieguo);
x=0;n=-2;
jieguo=Power(x,n);
printf("%.2lf的%d次方结果是:%.2lf\n",x,n,jieguo);
x=0;n=0;
jieguo=Power(x,n);
printf("%.2lf的%d次方结果是:%.2lf\n",x,n,jieguo);
x=-2;n=0;
jieguo=Power(x,n);
printf("%.2lf的%d次方结果是:%.2lf\n",x,n,jieguo);
}
/*输出结果为:
2.00的2次方结果是:4.00
2.00的-2次方结果是:0.25
-2.00的-2次方结果是:0.25
0.00的-2次方结果是:0.00
0.00的0次方结果是:0.00
-2.00的0次方结果是:1.00
*/