浙大版《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版)》題目集


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com