其他分享
首页 > 其他分享> > 小韦老师@神犇营-my0090-分段函数3

小韦老师@神犇营-my0090-分段函数3

作者:互联网

小韦老师@神犇营-my0090-分段函数3

题目:

描述

给定如下的分段函数,请你完成程序:输入 x 的值,输出 f(x) 的值。

xxx

输入

输入仅一行,为 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