![](/img/trans.png)
[英]C program to find the sum of all odd integers up to n using while-loop
[英]How does % work on this C program? (sum of odd and even integers)
这是代码:
#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;
%
运算符为您提供余数除法。 除以2,偶数除以2将始终具有0的余数。 奇数,如果为正数,则余数为1 ;如果为负数,则余数为-1 。 您只需要测试一个案例就可以确定是否成立,这就是您在现有代码中看到的情况。
if (i & 1) // Example: 0101 (5) & 0001 (1) == 1
// Odd
else // Example: 0100 (4) & 0001 (1) == 0
// Even
该方法不涉及除法,在处理带符号整数时只有两个可能的结果,而不是三个。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.