oa办公系统网址,天津优化网络公司的建议,注册网站会不会有问题,SEO参与网站建设注意题目解析部分
题目中说的这个数组使我们所熟知的杨氏矩阵 拿到一道题的解题思路应该是这样的#xff1a;先看这道题中所用到的知识点#xff0c;然后选用合适的类型和返回类型。先用伪代码来将整体思路屡清楚#xff0c;再用代码去代替
伪代码部分
假设这个要找的整数为f…题目解析部分
题目中说的这个数组使我们所熟知的杨氏矩阵 拿到一道题的解题思路应该是这样的先看这道题中所用到的知识点然后选用合适的类型和返回类型。先用伪代码来将整体思路屡清楚再用代码去代替
伪代码部分
假设这个要找的整数为falg
找到矩阵的右上角的值与falg进行比较如果比falg小说明该行整数都比falg小开始从下一行进行匹配如果比falg大说明该行可能有与falg相等的整数如果将整个矩阵都找过后没有找到就返回-1如果找到了就返回1
代码部分
#includestdio.hint find(int array[10][10], int cows, int columns,const int num )
{int row 0;//定义行数int column columns - 1;//定义列数 这时形参columns是列数所以应该-1才是最后一列的坐标int ret -1;//定义一个返回值 初始值为-1如果以下代码没有找到这个数就返回-1找到了就返回1while (row cows column 0){if (num array[row][column]){ret 1;break;}//用杨氏矩阵右上角的数值于num进行比较如果想等,将1赋给ret然后结束循环否则进行下一步操作if (num array[row][column]){row;column columns - 1//每次从下一行查找时都要从最右边的整数开始//如果不从最右边开始可能flag就在array[row][column]的右边可以自行测试continue;}//如果右上角这个数值小于num由于这个数是该行最大值则跳到下一行进行比较跳出此次循环进行下一次循环if (num array[row][column]){column--;continue;}//如果右上角这个数值大于num则跳到前一列进行比较跳出此次循环进行下一次循环}return ret;}int main()
{int arr[5][8] { { 1, 2, 3, 4, 5 }, { 2, 4, 5, 6, 7 }, { 3, 4, 5, 6, 7 } };int num 11;int row sizeof(arr) / sizeof(arr[0]);int column sizeof(arr[0]) / sizeof(int);int ret 0;ret find(arr, row, column, num);if (ret 1){printf(找到了\n);}else{printf(没有找到\n);}return 0;
}