// 设计函数,接收一个数值类型的5行3列的二维数组和查找的数值,返回数值在二维数组的序号。 // 【提示】第一个元素的序号为0, 第二行第一个元素的序号为3 #include int find(int (*arr)[3], int num) { int *p = arr[0]; // arr[0] == &arr[0][0] // int *p = &arr[0][0]; // arr[0] == &arr[0][0] int n = 0; for (int i = 0; i < 5; i++) { for (int j = 0; j < 3; j++) { // if (arr[i][j] == num) if (*(p + i * 3 + j) == num) // arr[i][j] == *(p+i*3+j) { return n; } n++; // 序号加1 } } return -1; // 没找到 } int main() { int a[5][3] = { {1, 2, 3}, {4, 5, 6}, {7, 9, 9}, {10, 11, 12}, {13, 14, 15}}; printf("%d\n", find(a, 9)); // 输出结果:7 return 0; }