Bootstrap

从0开始C语言(7)

二维数组查找

#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. 定义一个数组,要求长度使用宏定义,终端输入数组中的数据,实现冒泡排序,
    1. //添加标志位,标志位要求,终端输入,如果输入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;
      }
      

;