https://pintia.cn/problem-sets/12/problems/243
练习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>
float f(float x)
{
return (x!=0.0) ? (1.0/x) : (0.0);
}
int main()
{
float x;
if(scanf("%.1f", &x) == 1)
{
printf("f(%.1f) = %.1f", x, f(x));
}
return 0;
}
报错:
a.c: In function ‘main’:
a.c:11:14: warning: unknown conversion type character ‘.’ in format [-Wformat=]
if(scanf("%.1f", &x) == 1)
^
a.c:11:12: warning: too many arguments for format [-Wformat-extra-args]
if(scanf("%.1f", &x) == 1)
^~~~~~
大概明白了,应该是要把 scanf("%.1f"
中的 .1
去掉。修改之后的代码为:
#include <stdio.h>
float f(float x)
{
return (x!=0.0) ? (1.0/x) : (0.0);
}
int main()
{
float x;
if(scanf("%f", &x) == 1)
{
printf("f(%.1f) = %.1f", x, f(x));
}
return 0;
}
参考文献:
1. 《C语言程序设计(第3版)》 - 浙江大学;
2. 浙大版《C语言程序设计(第3版)》题目集。