如何顯示和添加所有偶數?當前代碼以升序方式顯示 2 個數字之間的數字。
#include <stdio.h>
main() {
int a;
int b;
printf("Enter integer a:");
scanf("%d", &a);
printf("Enter integer b:");
scanf("%d", &b);
if(b > a)
{
do {
printf("Result: %d\n", b);
b--;
} while (a <= b);
}
else
{
do {
printf("Result: %d\n", a);
a--;
} while (a >= b);
}
}
uj5u.com熱心網友回復:
要檢查整數是否為偶數,您可以檢查最低有效位是否為零。
要檢查整數是否為奇數,您可以檢查最低有效位是否為1。
您可以使用按位 AND ( &)來做到這一點。
就像是:
if(b > a)
{
if (b & 1) b--; // Make b even
if (a & 1) a ; // Make a even
int sum = 0;
do
{
sum = b;
printf("b is %d, sum is %d\n", b, sum);
b = b - 2;
} while (b >= a);
}
uj5u.com熱心網友回復:
所有偶數都可以被 2 整除。您需要檢查除以 2 的余數是否等于零。為此,您可以使用模運算子 ( %)。只顯示偶數:
if ((b%2) == 0) {
printf("Result: %d\n", b);
}
uj5u.com熱心網友回復:
我會寫一個函式,我可以測驗極端的不同可能組合:
#include <stdio.h>
void evens(int a, int b)
{
// Make sure to always start from the greatest value.
if ( a > b ) {
int tmp = a;
a = b;
b = tmp;
}
// Make sure to always start from an EVEN value.
if ( b % 2 != 0 ) {
--b;
}
int sum = 0;
while ( a <= b ) {
printf("%d ", b);
sum = b;
b -= 2; // Jump directly to the previous even number.
}
printf("\nSum: %d\n", sum);
}
int main(void)
{
// Those should all print "10 8 6 4 2 \nSum: 30\n"
evens(1, 10);
evens(10, 1);
evens(2, 11);
evens(11, 1);
evens(2, 10);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/356328.html
標籤:C
上一篇:嘗試使用gcc編譯我的opengl專案時出現聯結器錯誤
下一篇:在C中的宏函式中使用宏陳述句
