相关疑难解决方法(0)

bool转换为int

这种转换有多便携.我可以确定两个断言都通过了吗?

int x = 4<5;
assert(x==1);

x = 4>5;
assert(x==0);
Run Code Online (Sandbox Code Playgroud)

不要问为什么.我知道这很难看.谢谢.

c c++ c99

118
推荐指数
3
解决办法
12万
查看次数

链式比较运算符的语言支持(x <y <z)

一个问题被张贴有关链比较运营商以及它们如何在不同的语言解释.

链接比较运算符意味着(x < y < z)将被解释为((x < y) && (y < z))而不是((x < y) < z).

对该问题的评论表明,Python,Perl 6和Mathematica支持链接比较运算符,但是其他语言支持这个功能,为什么它不常见?

快速浏览一下Python文档就可以看出这个功能至少从1996年开始.有没有更多语言没有添加这种语法的原因?

静态类型语言会出现类型转换问题,但还有其他原因这种情况不常见吗?

syntax programming-languages operators

21
推荐指数
3
解决办法
4459
查看次数

为什么我们不能在C ++中进行三向比较?

概括一下,为什么不2 < x < 9等于2 < x && x < 9

这是我编写的测试代码:

#include <iostream>

int main()
{
    int nums[] = { 5 , 1, 10};

    // We are gonna check if the number is in the range 2 - 9 
    for (auto e : nums)
    {
        if (2 < e < 9)
            std::cout << "2 < " << e << " < 9" << std::endl;

        if(2 < e && e < 9)
            std::cout << "2 < …
Run Code Online (Sandbox Code Playgroud)

c++

18
推荐指数
2
解决办法
1888
查看次数

我可以做x = y = z。在C ++中为什么不允许x &lt;y &lt;z?

我是编程新手,并且有关于在一行上使用多个运算符的问题。

说,我有

int x = 0;
int y = 1;
int z = 2;
Run Code Online (Sandbox Code Playgroud)

在此示例中,我可以使用分配操作符链: x = y = z;

然而,我怎么就不能使用:x < y < z;

c++

17
推荐指数
4
解决办法
1666
查看次数

为什么在 C++ 中 (0 &lt; 5 &lt; 2) 结果为真?

下面的代码std::cout << (0 < 5 < 2);输出1(true) 到控制台,即使从数学上讲,它5 < 2是假的。这背后的逻辑是什么?

假设:这是因为0 < 5计算为 1,因此0 < 5 < 2计算为1 < 2。我对么?

c++ math boolean-logic boolean

6
推荐指数
1
解决办法
94
查看次数

检查值是否在if statment的范围内

我在下面做了:

if( '0' <= infix.at(i)<= '9'){
// some logic
}
Run Code Online (Sandbox Code Playgroud)

编译器告诉我警告在操作中不安全地使用'bool'类型.我将其更改为以下内容:

if( '0' <= infix.at(i)&& infix.at(i) <= '9') 
Run Code Online (Sandbox Code Playgroud)

现在它有效.是第一个不允许在C++中?

c++

1
推荐指数
1
解决办法
821
查看次数

C++中的逻辑错误

我在C++中有以下代码:

(哪里arr.data[i-1] = 20; arr.date[i] = 30; payload = 50;)

if (i > 0 && arr.data[i-1] < payload < arr.data[i]) {
    cout << arr.data[i-1] << " < " << payload << " < " << arr.data[i] << "\n";
}
Run Code Online (Sandbox Code Playgroud)

我收到的声明是

20 < 50 < 30
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

c++ arrays

1
推荐指数
1
解决办法
111
查看次数

比较运算符的类似数学的链接 - 例如,"if((5 <j <= 1))"

int j=42;
if( (5<j<=1) ) {
    printf("yes");
} else {
    printf("no");
}
Run Code Online (Sandbox Code Playgroud)

输出:

yes
Run Code Online (Sandbox Code Playgroud)

为什么输出是?
不是条件只有一半是真的吗?

c c++ if-statement comparison-operators

0
推荐指数
3
解决办法
363
查看次数

只返回第一个if语句?(C++)

这是我正在进行的任务:

编写一个程序,提示用户输入课程所获得的分数并确定分数.该程序应显示成绩的成绩和消息字符串.使用'if else'语句确定要打印消息字符串的等级和switch语句.

我编写了代码并且执行时没有任何调试错误.问题是,无论我输入什么作为我PointsEarned,我只得到F的输出!例如,如果我输入"90":

Try Harder Next Time.
GRADE: F
Run Code Online (Sandbox Code Playgroud)

有什么问题?我把我的switch语句放在错误的地方吗?这是代码:

#include <iostream>
using namespace std;
int main()
{
    int PointsEarned;
    char Grade;
    cout << "Please input the points earned in the course: ";
    cin >> PointsEarned;
    if (0 <= PointsEarned < 60) {
        Grade = 'F';
    }
    else if (60 <= PointsEarned < 70) {
        Grade = 'D';
    }
    else if (70 <= PointsEarned < 80) {
        Grade = 'C';
    }
    else if (80 <= PointsEarned < …
Run Code Online (Sandbox Code Playgroud)

c++ if-statement switch-statement

0
推荐指数
1
解决办法
104
查看次数

具有两个关系运算符的单个变量如何在内部工作

如果需要组合布尔表达式,我们通常使用逻辑运算符.如果不使用逻辑运算符,我想知道表达式.

int x=101;
if(90<=x<=100)
  cout<<'A';  
Run Code Online (Sandbox Code Playgroud)

此代码仍在控制台上打印"A".你能帮我理解一下这个布尔表达式的评估方式和顺序.

c++ boolean-expression logical-operators relational-operators

0
推荐指数
1
解决办法
49
查看次数

BMI计算器C代码

我正在尝试编写一个简单的BMI计算器,但出于某种原因,当我尝试175高度(公式为1.75)和70为质量时它应该给出22.8,这是在健康范围内,但它让我体重不足.我知道这可能是一个简单的错误,但我看不到它.

float main(void) { 

    float height;   
    printf("Enter your height in cm:\n");
    scanf("%f",&height);    

    float weight; 
    printf("Enter your weight in kg:\n");
    scanf("%f",&weight);

    float bmi;
    bmi = (weight/(height/100)*(height/100));

    if (bmi <= 16) {
        printf("Severely Underweight\n");
    }
    else if (16 < bmi <= 18.5) {
        printf("Underweight\n");
    }
    else if (18.5 < bmi <= 25) {
        printf("Healthy\n");
    }
    else if (25 < bmi <= 30) {
        printf("Overweight\n");
    }
    else {
        printf("Severely Overweight\n");
    }
}
Run Code Online (Sandbox Code Playgroud)

c c++ math indexing if-statement

-3
推荐指数
2
解决办法
3056
查看次数