写一个程序,从键盘输入x的值,输出y的值

写一个程序,从键盘输入x的值,输出y的值
y=x x<0
y=3x-2 0<=x<50
y=4x+1 50<=x<100
y=5x x>=100

参考GPT和自己的思路:好的,这个问题可以用如下的代码实现:

#include <iostream>

using namespace std;

int main() {
    int x, y;
    cout << "请输入 x 的值:";
    cin >> x;
    
    if (x < 0) {
        y = x;
    } else if (x < 50) {
        y = 3 * x - 2;
    } else if (x < 100) {
        y = 4 * x + 1;
    } else {
        y = 5 * x;
    }
    
    cout << "y 的值为:" << y << endl;
    return 0;
}

这个程序通过键盘输入的方式获取了 x 的值,然后按照题目中给出的条件计算了 y 的值,并输出了最终结果。注意判断条件中的不等式符号需要特别注意。

c语言实现如下【包含两种: if 实现 和 switch 实现】:

#include<stdio.h>
int main()
{
    int x, y;
    scanf("%d", &x);

    if (x < 0)
        y = x;
    else if (x >= 0 && x < 50)
        y = 3 * x - 2;
    else if (x >= 50 && x < 100)
        y = 4 * x + 1;
    else 
        y = 5 * x;

    printf("y = %d", y);
}
#include<stdio.h>
int main()
{
    int x, y;
    scanf("%d", &x);

    int num = (x < 0) + 2 * (x >= 0 && x < 50) + 3 * (x >= 50 && x < 100) + 4 * (x >= 100);

    switch(num)
    {
        case 1: y = x; break;
        case 2: y = 3 * x - 2; break;
        case 3: y = 4 * x + 1; break;
        case 4: y = 5 * x; 
    }     

    printf("y = %d", y);
}
不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7535822
  • 这篇博客你也可以参考下:判断输入的数是否为整数,不是整数则抛出异常,继续输入,直到输入的数为整数
  • 除此之外, 这篇博客: 关于求一个整数的位数,各位数逆序输出,各位数顺序输出的问题中的 求一个整数的位数 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    基本的思路大致如下
    首先得到一个任意整数n,并且设置一个位数计数器count。先对位数计数器count进行初始化,使其为0。接着在一个对整数n用10整除,每整除一次,整数n减少以为,所以位数计数器在同时加1,这样的操作循环进行,直到该整数为0为止,此时位数计数器count内的值就为该整数n的位数了。但是,值得注意的是,如果整数n为0时,整数除10,位数计数器count加1的操作由于整数为0而不进行,所以count的值为0,0是一位数,所以这是不合理的。所以就需要额外定义当整数n为0时,位数为1的说明。以下是C语言的实现代码:

    int Count(int n){
    	int count;
    	if(n == 0){
    		return 1;
    	}
    	while(n != 0){
    		n /= 10;
    		count++;
    	}
    	return count;
    }
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^