簡體   English   中英

%在此C程序上如何工作? (奇數和偶數整數之和)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM