下列给定程序中函数fun的功能是:计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。其中x和y的值不相等,z和y的值不相等。
例如,当x的值为9,y的值为11,z的值为15时,函数值为-3.50。
请改正程序中的错误,使它能得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构。

程序如下:


#include <stdio.h>
#include <math.h>
#include <stdlib.h>
/************found************/
#define FU(m,n) ((m/n))
float fun(float a,float b,float c)
{ float value;
value=FU(a+b,a-b)+FU(c+b,c-b);
/************found************/
Return(Value);
}
main()
{ float x,y,z,sum;
printf("Input x y z: ");
scanf("%f%f%f",&x,&y,&z);
printf("x=%f,y=%f,z=%f\n",x,y,z);
if (x==y||y==z){
printf("Data error!\n");exit(0);
}
sum=fun(x,y,z);
printf("The result is : %5.2f\n",sum);
}



做完再看答案~~


aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa




【答案】

(1)#define FU(m, n)(m)(n)

(2)return(value):

【分析】

本题考查C语言的宏定义,其格式为:#define标识符字符串,中间要用空格分开。在该题中,标识符为FU(m,a),字符串为(mm),由题干信息可知,m、n均为表达式,且先进行表达式运算,再进行除法运算,因此此处应为(m)(n)


【程序运行】

改错题:宏定义_#define



【运行过程】

改错题:宏定义_#include_02


​留言板​