Problem A: 編寫函式:計算分段函式 (Append Code)
阿新 • • 發佈:2020-12-21
技術標籤: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;
}