二维数组查找
#include <stdio.h>
void find(int A[][3], int rows, int cols, int *max_value, int *max_row, int *max_col) {
*max_value =A[0][0];//初始假设第一个元素是最大值;
*max_row = 0;
*max_col = 0;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
if (A[i][j] > *max_value) {
*max_value = A[i][j];
*max_row = i;
*max_col = j;
}
}
}
}
int main() {
int A[3][3] = {
{3, 8, 2},
{4, 6, 7},
{1, 9, 5}
};
int max_value, max_row, max_col;
find(A, 3, 3, &max_value, &max_row, &max_col);
printf("最大值是 %d,位于第 %d 行,第 %d 列\n", max_value, max_row, max_col);//默认从第0行开始
return 0;
}
- 定义一个数组,要求长度使用宏定义,终端输入数组中的数据,实现冒泡排序,
- //添加标志位,标志位要求,终端输入,如果输入1,升序,输入0降序。
#include <stdio.h>
#define LEN 10 // 定义数组长度的宏
void bubbleSort(int arr[], int n, int order) {
int i, j, temp;
for (i = 0; i < n-1; i++) {
for (j = 0; j < n-i-1; j++) {
if (order) {
if (arr[j] > arr[j+1]) {
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
} else {
if (arr[j] < arr[j+1]) {
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
}
int main() {
int arr[LEN];
int i, order;
printf("请输入 %d 个整数:\n", LEN); // 输入数组元素
for (i = 0; i < LEN; i++) {
scanf("%d", &arr[i]);
}// 输入排序顺序标志位
printf("请输入排序顺序(1 表示升序,0 表示降序): ");
scanf("%d", &order);
bubbleSort(arr,LEN, order);// 调用冒泡排序函数
printf("排序后的数组:\n");
for (i = 0; i < LEN; i++) {
printf("%d ", arr[i]);
} // 输出排序后的数组
printf("\n");
return 0;
}