问题 填空题

给定程序MODI1.C中函数fun的功能是:把主函数中输入的3个数,最大的放在a中,最小的放在c中,中间的放在b中。

例如,输入的数为:551234,输出结果应当是:a=55.0,b=34.0,c=12.0。

请改正程序中的错误,使它能得出正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

 

答案

参考答案:(1)float k;(2)if(*a<*c)

解析:

本题中函数的功能是把主函数中输入的3个数,最大的放在a中,最小的放在c中。对三个数进行两两比较,实现函数功能。

(1)第一个标识下的变量k是在比较过程中,临时存放数据的变量,因此k不应是指针,所以将“float *k;”改为“float k;”。

(2)分析函数中第一个if语句,如果主函数中a<b,则对调,把大数放在a中;分析第二个if语句,如果主函数中的a>c,则进行对调,又把大数放在c中,这样的逻辑显然是混乱的。因此第二个标识下“if(*a>*c)”应该改为“if(*a<*c)”。

[考点] 定义变量;指针操作。

填空题
填空题