浙大版《C语言程序设计(第3版)》题目集
练习2-10 计算分段函数[1] (10 分)
本题目要求计算下列分段函数f(x)的值:
公式
输入格式:
输入在一行中给出实数x。
输出格式:
在一行中按“f(x) = result”的格式输出,其中x与result都保留一位小数。
输入样例1:
10
输出样例1:
f(10.0) = 0.1
输入样例2:
0
输出样例2:
f(0.0) = 0.0
错误版本
在这里插入代码片
#include <stdio.h>
int f(double x){
double t=0;
if(x!=0){
t=1/x;
}
return t;
}
int main(){
double x;
scanf("%lf",&x);
printf("f(%.1f)=%.1f",x,f(x));
return 0;
}
- 错误点
发现输入10,返回却是0
观察到是因为函数设置为int的缘故
因此改为double - 偷懒点
在函数初始化已设置为0,因此无需在写else语句
但是降低了可读性,属于小聪明
正式版本
#include <stdio.h>
double f(double x){
double f=0;
if(x!=0){
f=1/x;
}
return f;
}
int main(){
double x;
scanf("%lf",&x);
printf("f(%.1f)=%.1f",x,f(x));
return 0;
}
感悟:
- 即使函数要返回某个变量,也需要定义这个变量
- 其次返回时要注意设定的函数类型是否匹配
- 对于“printf”输出时可直接用函数
本文探讨了浙大版《C语言程序设计(第3版)》中的练习题,通过对比错误与正确版本的代码,解析了数据类型不匹配导致的问题,并分享了编程经验教训。
1232

被折叠的 条评论
为什么被折叠?



