C++ 在这个问题中,我们如何考虑变量的约束?

C++ 在这个问题中,我们如何考虑变量的约束?,c++,constraints,C++,Constraints,问题:从标准输入中读取3个数字,并将其总和打印到标准输出。 约束条件:1问题是,没有输入小于1或大于1000 你可以相应地选择你的类型。例如,最大和是1000+1000+1000,因此如果您的int类型可以在您的平台上保持该值,那么您就是黄金 这也可能意味着您可以选择放弃验证或测试超出该范围的值,但如果不清楚,您应该与您的讲师核实。无论如何,您可能仍然希望执行此验证,以验证传递数据的人是否支持约束。一般来说,这是否值得做取决于情况。对于教育来说,似乎给予的限制意味着你不必担心这样做。也许将来的任

问题:从标准输入中读取3个数字,并将其总和打印到标准输出。
约束条件:1问题是,没有输入小于1或大于1000

你可以相应地选择你的类型。例如,最大和是1000+1000+1000,因此如果您的int类型可以在您的平台上保持该值,那么您就是黄金


这也可能意味着您可以选择放弃验证或测试超出该范围的值,但如果不清楚,您应该与您的讲师核实。无论如何,您可能仍然希望执行此验证,以验证传递数据的人是否支持约束。一般来说,这是否值得做取决于情况。对于教育来说,似乎给予的限制意味着你不必担心这样做。也许将来的任务将涉及无约束的输入。< /P> < P>你声明数据类型x,y和z为int,确保值的范围在2147483648到2147483647之间,这是C++中INT4字节的默认值范围。

< P>你可以在代码中添加一个天真的检查,控制每个输入值是否属于区间[11000],并在检查失败时要求插入正确的值:

#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;


int main() {
    int sum = 0;
    int x, y, z;

    cin >> x >> y >> z;
    while(x<1 || x>1000 || y<1 || y>1000 || z<1 || z>1000){
       cout << "Error: each input value must belong to [1,1000]!" << endl;
       cin >> x >> y >> z;
    }
    sum = x + y + z;
    cout << "The sum is " << sum << endl;
    return 0;
}
我建议在开头插入一条语句和说明,比如

cout << "Insert 3 values belonging to [1,1000]" << endl;

什么约束:1限制允许您知道哪些类型可以/不能使用。例如,使用char不能满足这些限制。它也可能表示预期的复杂性。通常在这样的练习中,您不需要验证输入。您可以假设这些值将在该范围内。约束是给您的程序的输入限制。我认为您必须检查输入中的x、y和z是否大于1且小于1000,简单地说:如果继续求和并打印,否则,返回警告或错误消息。消息不需要4字节或32位,这是C++中的It4字节的默认值范围。这是不正确的。通常,在大多数系统上,我会说它是4字节。考虑到他问的是一个有限制的问题,这很可能是一个针对竞争性编码平台的问题,要么是Geeksforgeks,Leetcode,要么是Hackerrank,在这些系统中,int的值是4字节。通常是一回事。违约是另一回事。没有默认设置。也没有人提到竞争性的编码平台,即使你在一个平台上,你也不应该做出假设。例如,你会在这个网站上发现数十万个问题,这些问题来自使用16位整数的人。你不能指望这些问题。有人仍然在教如何使用DOSBOX和Turbc++编程C++。这些人只能得到一个16位的整数。实际上,输入可以大于999,他们可以假设值为1000:他们不能大于1000。@Eddymage你说得对;I read=你说得对,有时这种符号也会困扰我!
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;


int main() {
    int sum = 0;
    int x, y, z;

    cin >> x >> y >> z;
    if(x<1 || x>1000 || y<1 || y>1000 || z<1 || z>1000){
       cout << "Error: each input value must belong to [1,1000]. Abort." << endl;
       return -1;
    }
    sum = x + y + z;
    cout << "The sum is " << sum << endl;
    return 0;
}
cout << "Insert 3 values belonging to [1,1000]" << endl;