浙大版《C语言程序设计(第3版)》题目集 - 学习笔记 - 编程题 - 练习2-10 计算分段函数[1]

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 functionmain’:
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版)》题目集

猜你喜欢

转载自blog.csdn.net/qq_33528613/article/details/80051287