1.调整数组使奇数全部都位于偶数前面。
题目:
输入一个整数数组,实现一个函数,
来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,
所有偶数位于数组的后半部分。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main(){
int arr[10] = { 1, 5, 8, 6, 4, 11, 42, 23, 9, 12 };
int number[10];
int even[10];
int n = 0;
int k = 0;
int j = 0;
for (int i = 0; i < 10; ++i){
if (arr[i] % 2 == 0){//判断是否为偶数,是,将值放进数组even
even[n] = arr[i];
++n;
}
else{
number[k] = arr[i];//奇数放进数组number
++k;
}
}
for (; k < 10; ++k){
number[k] = even[j];//将even的值放进number中
++j;
}
for (int i = 0; i < 10; ++i){
printf("%d,", number[i]);
}
system("pause");
return 0;
}
2.
//杨氏矩阵
有一个二维数组.
数组的每行从左到右是递增的,每列从上到下是递增的.
在这样的数组中查找一个数字是否存在。
时间复杂度小于O(N);
数组:
1 2 3
2 3 4
3 4 5
1 3 4
2 4 5
4 5 6
1 2 3
4 5 6
7 8 9
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int found(int arr[3][3]){
int check = 0;
printf("输入一个数\n");
scanf("%d", &check);
for (int i = 0; i < 3; ++i){
if (arr[i][0] <= check){
if (arr[i][0] == check){
return 1;
break;
}
else if (arr[i][1] == check){
; return 1;
break;
}
else if (arr[i][2] == check){
return 1;
break;
}
}
}
}
int main(){
int arr[3][3] = {1,3,4,2,4,5,4,5,6};
int n = found(arr);
if (n == 1){
printf("找到了\n");
}
else{
printf("未找到\n");
}
system("pause");
return 0;
}