为一个4行4列的二维数组输入整数,分别输出值为奇数、偶数的元素之和
#include <stdio.h>
int main() {
int array[4][4];
int i, j;
int sum_even = 0;
int sum_odd = 0;
// 输入数组元素
printf("请输入4行4列的整数数组:\n");
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++) {
scanf("%d", &array[i][j]);
}
}
// 计算奇数和偶数元素的和
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++) {
if (array[i][j] % 2 == 0) {
sum_even += array[i][j];
} else {
sum_odd += array[i][j];
}
}
}
// 输出结果
printf("奇数元素的和为:%d\n", sum_odd);
printf("偶数元素的和为:%d\n", sum_even);
return 0;
}
运行效果如下:
请输入4行4列的整数数组:
1 2 3 4
5 6 7 8
1 2 3 4
5 6 7 8
奇数元素的和为:32
偶数元素的和为:40
这是最近看到的一种排序方法,我觉得有必要了解下原理。
public static void selectSort(int [] arr){
int length = arr.length;
for(int i=0;i<length - 1; i++){
int min = i;
for(int j=i+1; j<length; j++){
if(arr[min] > arr[j]){
// 当前最小的数a[min]如果大于arr[j],就换位置并且将最小数变为arr[j]
min = j;
}
}
printArray(arr);
if(min != i){
swap(arr,i,min);// 换位置
}
}
}
还是在main方法里面执行
int ff []={2,5,2,4,7,3,1};
selectSort(ff);
执行过程:
// 这是升序排序
// 2,5,2,4,7,3,1 原始数据
// 第一次循环 最小值为原始数据第一位数2,从第一位开始比较
//2>1(第一位后最小值) 所以就第一个2与最后的1换位置,最小值变为1,其他不变
1 5 2 4 7 3 2
// 第二次循环 最小值为上排序第一位数1,从第二位开始比较
//5>2 所以5与2换位置,最小值变为2,其他不变
1 2 5 4 7 3 2
// 第三次循环 最小值为上排序第二位数2,从第三位开始比较
//5>2 所以5与2换位置,最小值变为2,其他不变
1 2 2 4 7 3 5
// 第四次循环 最小值为上排序第三位数2,从第四位开始比较
//4>3 所以4与3换位置,最小值变为3,其他不变
1 2 2 3 7 4 5
// 依次。。
1 2 2 3 4 7 5
1 2 2 3 4 5 7
选择排序的过程就是上面情况,看出原理了么!
我可以给出解决问题的具体步骤:
1.定义一个4行4列的二维数组,int Array[4][4],并赋初值为0。
2.使用for循环读取用户输入的整数,并将其放入数组中。
3.使用for循环遍历数组,判断每个元素的奇偶性,将奇数和偶数的元素之和分别累加。
4.输出奇数和偶数的元素之和。
以下是代码实现:
#include <stdio.h>
int main() {
int Array[4][4] = {0}; // 定义4行4列的二维数组并赋初值为0
int oddSum = 0, evenSum = 0; // 奇数和偶数的元素之和
// 读取用户输入的整数,并将其放入数组中
printf("请输入16个整数,以空格或回车分隔:\n");
for(int i=0; i<4; i++) {
for(int j=0; j<4; j++) {
scanf("%d", &Array[i][j]); // 读取整数
}
}
// 遍历数组,计算奇数和偶数的元素之和
for(int i=0; i<4; i++) {
for(int j=0; j<4; j++) {
if(Array[i][j] % 2 == 0) { // 如果元素为偶数
evenSum += Array[i][j]; // 累加到偶数的元素之和中
}
else { // 如果元素为奇数
oddSum += Array[i][j]; // 累加到奇数的元素之和中
}
}
}
// 输出奇数和偶数的元素之和
printf("奇数的元素之和为:%d\n", oddSum);
printf("偶数的元素之和为:%d\n", evenSum);
return 0;
}