37 lines
906 B
C
37 lines
906 B
C
// 设计函数,接收一个数值类型的5行3列的二维数组和查找的数值,返回数值在二维数组的序号。
|
||
// 【提示】第一个元素的序号为0, 第二行第一个元素的序号为3
|
||
#include <stdio.h>
|
||
|
||
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;
|
||
} |