对一维数组的10个数组元素依次赋值为1-10,检查元素的奇偶性,若元素为奇数,则×2使之变为偶数,并重新依次输出数组元素的值
#include <stdio.h>
int main() {
int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
printf("原始数组:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
for (int i = 0; i < 10; i++) {
if (arr[i] % 2 == 1) { // 如果是奇数
arr[i] *= 2; // 乘以2变为偶数
}
}
printf("新数组:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
不知道你这个问题是否已经解决, 如果还没有解决的话:最基础的位运算: 复习一遍吧 👇:
<< 左移, >>右移, >>> 忽略符号位右移
除此之外,还有以下常用技巧 👇,记忆一下吧!⭐️
-n = ~n + 1
n & (n - 1) 可以去除 n 的最低位的 1 比如 1010 --> 1000
n & (-n) 可以只保留 n 的最低位的 1 比如: 1010–> 0010
两个数异或,相当于无进位的加法。两个数相与, 可以得到进位位。
# Python代码如下:
lst = [i for i in range(1, 11)] # 先生成1-10的列表
for i in range(len(lst)):
if lst[i] % 2 == 1: # 判断奇偶性
lst[i] *= 2 # 奇数乘2
print(lst) # 输出