C++;百分号是什么意思? 我得到这个C++宏,想知道代码2 %(百分比符号)?< /P>是什么意思?

C++;百分号是什么意思? 我得到这个C++宏,想知道代码2 %(百分比符号)?< /P>是什么意思?,c++,C++,它表示除法的剩余部分。在您的例子中,除以2,余数将是0或1。它意味着模。通常(x%2)区分奇数和偶数。用于取模 基本上,它是余数的整数表示 所以,如果你除以2,你将得到0或1作为余数 这是一种很好的数字循环方式,如果您希望偶数行是一种颜色,奇数行是另一种颜色,则模数2适用于任意数量的行。这就是模数。它返回除法后剩余的值: 10/3将给出3。-剩下1个 10%3等于1。模返回除法后剩下的余数。例如,当您负责确定偶数/奇数/素数时,它会很有帮助: 下面是一个使用它查找素数的示例: int main(

它表示除法的剩余部分。在您的例子中,除以2,余数将是0或1。

它意味着模。通常
(x%2)
区分奇数和偶数。

用于取模

基本上,它是余数的整数表示

所以,如果你除以2,你将得到0或1作为余数


这是一种很好的数字循环方式,如果您希望偶数行是一种颜色,奇数行是另一种颜色,则模数2适用于任意数量的行。

这就是模数。它返回除法后剩余的值:

10/3将给出3。-剩下1个


10%3等于1。

模返回除法后剩下的余数。例如,当您负责确定偶数/奇数/素数时,它会很有帮助:

下面是一个使用它查找素数的示例:

int main(void)
{ int-isPrime=1; int n

cout << "Enter n: ";
cin >> n;

for (int i=1; i<=n; i++)
{
    for (int j=2; j <= sqrt(static_cast<double>(i)); j++)
    {
        if(!(i%j))
        {
            isPrime=0;
            break;
        }

    }

    if (isPrime)
        cout << i << " is prime" << endl;
    isPrime=1;
}
return 0;
cout>n;

对于(inti=1;i以防有人关心:%真正返回的是余数,而不是模。只要这些数字是正数,就没有区别

但对于负数,可能存在差异。例如,-3/2可以给出两个可能的答案:-1的余数为-1,或-2的余数为1。至少在模运算中通常使用的情况下,模始终为正,因此第一个结果与模不对应

C89/90和C++98/03允许两种答案中的任何一种,只要/和%生成的答案能够协同工作,这样您就可以复制输入(即-1x2+-1->-3,-2x2+1=-3)


对于较新版本的标准(C99、C11和C++11),不再有任何选择:整数除法必须向0取整。例如-3/2必须给出-1和-1的余数。不再允许-3/2给出-2和1的余数。

这是除法的余数。 就像5除以2的余数是1,因为2等于5乘以2,但这只等于4,最后你得到了一点额外的值

5%2==1

请注意,除法值不是在任何地方计算的,因此如果需要除法的整个整数值及其余数

int answer = 5 / 2;
int remainder = 5 % 2;
cout << "5 divided by 2 is " << answer << " with remainder " << remainder;
int-answer=5/2;
整数余数=5%2;

cout+1.在我看来,这是唯一令人满意的答案。标准提到了等式(a/b)*b+(a%b)=a。此外,C++0x将增加整数除法总是向零舍入的保证。这使得-3/2=1和-3%2=-1.+1。有好几次我想取负数的模,但这是一个即时保证的错误。这是C/C++中的一个真正缺陷:保证编译顺利,可能在一个平台上工作,但即时(神秘的)崩溃在其他地方编译。余数可以是负的。C++标准只需要相等(A/B)*b+(一% b)= A的情况下b!=0,并且允许整数除以零(C++ 0x甚至需要它),尽管余数只能是负的,如果红利是负的(或者除数,但这里是2)。。因此,根据“代码”是什么,这可能不是一个问题,希望程序员在记录如何使用SHUFFLE_语句_2宏时考虑到这一点。%n实际上不会计算负数的模。请参阅Jerry Coffin的答案。
int answer = 5 / 2;
int remainder = 5 % 2;
cout << "5 divided by 2 is " << answer << " with remainder " << remainder;