1. 程式人生 > 其它 >Problem A: 編寫函式:計算分段函式 (Append Code)

Problem A: 編寫函式:計算分段函式 (Append Code)

技術標籤:C

實驗4
Problem A: 編寫函式:計算分段函式 (Append Code)
Description
設有函式y=f(x)定義為:
在這裡插入圖片描述

給定x的值,程式設計求出y的值並輸出。


編寫函式func()和output(),其原型為:

double func(double x);

功能:計算f(x)並返回。

int output(int n, double x)

功能:按照題意的格式輸出。

函式的呼叫格式見“Append Code”。

Input
輸入的第一個是測試樣例數N,後跟N個輸入為x的值。

Output
輸出為N行,每行順序與輸入對應的y=f(x)的計算結果,即y的值。輸出時y值保留6位有效數字,且不輸出無意義的0。

每行的格式為:

case i:y=?.

其中i表示測試用例編號(從1開始),?表示計算結果。

Sample Input

4
-3
0.5
2.1
10.08

Sample Output

case 1:y=3.
case 2:y=0.841471.
case 3:y=3.37061.
case 4:y=30.16.

Append Code

int main()
{
    int i, cases;
    double x;
    scanf("%d", &cases);
    for(i = 1; i <= cases; i++)
    {
        scanf
("%lf", &x); output(i, func(x)); } return 0; }

答案:
//注意輸出格式!!!!

#include<stdio.h>
#include<math.h>

double func(double x)
{
    if(x<0)return -x;
    else if(x>=0&&x<1)return sin(2*x);
    else if(x>=1&&x<5)return sqrt(x*x*x+x);
    else
return 2*x+10; } int output(int n, double x) { printf("case %d:y=%g.\n",n,x); return 1; } int main() { int i, cases; double x; scanf("%d", &cases); for(i = 1; i <= cases; i++) { scanf("%lf", &x); output(i, func(x)); } return 0; }