%C如何在这个C程序上运行? (奇数和偶数的和)

时间:2014-11-29 18:53:21

标签: c sum

这是代码:

    #include <stdio.h>
#include <conio.h>
void main()
{
       int i, N, oddSum = 0, evenSum = 0;


printf("Enter the value of N\n");
    scanf ("%d", &N);
for (i=1; i <=N; i++)
      {
        if (i % 2 == 0)
            evenSum = evenSum + i;
        else
            oddSum = oddSum + i;
    }
printf ("Sum of all odd numbers  = %d\n", oddSum);
    printf ("Sum of all even numbers = %d\n", evenSum);

}

在这个程序中,它从用户(N)获取一个数字,然后在两个不同的行中打印奇数和偶数的总和。

两个问题:

1-%如何在这里工作? 2-完全解释这一行:

if (i % 2 == 0)
        evenSum = evenSum + i;

1 个答案:

答案 0 :(得分:2)

%运算符为您提供剩余的除法。

除了符号之外,偶数除以 2 将始终具有 0 的余数。奇数,如果为正,则余数为 1 ,如果为负,则余数为 -1 。您只需要测试一个案例,以确定它是否是偶然的,这就是您在现有代码中看到的情况。

测试最低有效位以确定数字是否为奇数更有效:

if (i & 1)    // Example: 0101 (5) & 0001 (1) == 1
  // Odd

else          // Example: 0100 (4) & 0001 (1) == 0
  // Even

这种方法不涉及除法,在处理有符号整数时只有两种可能的结果而不是三种。