小韦老师@神犇营-my0090-分段函数3
作者:互联网
小韦老师@神犇营-my0090-分段函数3
题目:
描述
给定如下的分段函数,请你完成程序:输入 x 的值,输出 f(x) 的值。
输入
输入仅一行,为 x(-10^9 ≤ x ≤ 10^9 ),x 是整数。
输出
输出 f(x) 的值,结果保留两位小数。
输入样例1
1
输出样例1
3.5
题解:
思路:
整体思路:
根据 x 不同的范围对应不同的运算规则。
具体步骤:
1.定义一个 int 型的变量 x,并且输入 x。
2.定义一个 int 型的变量 num,用 num 不同的取值来对应 x 的不同范围。
3.根据 x 的取值,给 num 赋不同的值(这里赋什么值没有什么道理,只是做
一个强行对应):
if (x < 0) num = 0; // 若 x < 0,则 num 为 0
else if (x < 100) num = 1; // 若 0 <= x < 100,则 num 为 1
else if (x < 200) num = 2; // 若 100 <= x < 200,则 num 为 2
4.定义一个 double 型的变量 ans,用来存储运算结果,也即 f(x) 的值。
5.用 switch 来选择不同的运算规则,这里是根据 num 的值进行选择:
switch (num) { // 将 num 作为常量表达式,对应 x 不同的范围
case 0: // 若 x < 0,则 num 为 0,对应的运算规则为 f(x) = 2.1x
ans = 2.1 * x;
break; // 记得退出
case 1: // 若 0 <= x < 100,则 num 为 1,对应的运算规则为 f(x) = 3.5x
ans = 3.5 * x;
break; // 记得退出
case 2: // 若 100 <= x < 200,则 num 为 2,对应的运算规则为 f(x) = 5x + 6.4
ans = 5 * x + 6.4;
break; // 记得退出
case 3: // 若 num >= 200,则 num 为 3,对应的运算规则为 f(x) = 8x + 3.9
ans = 8 * x + 3.9;
}
6.将结果保留 2 位小数输出。
完整代码:
#include <bits/stdc++.h>
using namespace std;
int main() {
int x;
cin >> x;
int num; // 定义一个变量,用 num 不同的取值来对应 x 的不同范围
if (x < 0) num = 0; // 若 x < 0,则 num 为 0
else if (x < 100) num = 1; // 若 0 <= x < 100,则 num 为 1
else if (x < 200) num = 2; // 若 100 <= x < 200,则 num 为 2
else num = 3; // 若 num >= 200,则 num 为 3
double ans; // 结果,即 f(x) 的值
switch (num) { // 将 num 作为常量表达式,对应 x 不同的范围
case 0: // 若 x < 0,则 num 为 0,对应的运算规则为 f(x) = 2.1x
ans = 2.1 * x;
break; // 记得退出
case 1: // 若 0 <= x < 100,则 num 为 1,对应的运算规则为 f(x) = 3.5x
ans = 3.5 * x;
break; // 记得退出
case 2: // 若 100 <= x < 200,则 num 为 2,对应的运算规则为 f(x) = 5x + 6.4
ans = 5 * x + 6.4;
break; // 记得退出
case 3: // 若 num >= 200,则 num 为 3,对应的运算规则为 f(x) = 8x + 3.9
ans = 8 * x + 3.9;
}
// 保留 2 位小数输出
printf ("%.2f", ans);
return 0;
}
为 f(x) = 8x + 3.9
ans = 8 * x + 3.9;
}
// 保留 2 位小数输出
printf ("%.2f", ans);
return 0;
}
标签:运算,int,小韦,my0090,num,ans,3.9,对应,神犇 来源: https://blog.csdn.net/qq_31790997/article/details/95629200