C语言二维数组中的查找的实例

发布时间 - 2026-01-11 02:22:47    点击率:

C语言二维数组中的查找的实例

题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数

思路描述:一个数字的下方和右方是比它本身大的区域,而左方和上方时比它本身小的区域。选取右上角的数字进行比较,当该数大于指定的数时,舍去该列,当该数小于指定的数时,舍去该行,当相等时,则表示找到

C语言实现:

#include<stdio.h>
#include<stdlib.h>

typedef unsigned int boolean;
#define MAX 4
#define TRUE 1
#define FALSE -1

void showAry(int ary[MAX][MAX]);
boolean find(int ary[MAX][MAX], int rows, int cols, int number);

void showAry(int ary[MAX][MAX]) {
  int i = 0, j = 0;
  for(; i < MAX; i++) {
    j = 0;
    for(; j < MAX; j++) {
      printf("%d ", ary[i][j]);
    }
  }
}

boolean find(int ary[MAX][MAX], int rows, int cols, int number) {
  int i = 0, 
    j = cols - 1,
    n = 0;
  boolean result = FALSE;

  if(ary == NULL || rows <= 0 || cols <= 0) {
    return result;
  }

  while(i < rows && j >= 0) {
    n = ary[i][j];
    if(number == n) {
      printf("\nary[%d, %d] = %d\n", i, j, n);
      result = TRUE;
      break; 
    }else if(number < n) {
      j -= 1; 
    }else if(number > n) {
      i += 1;
    }
  }
  return result;
}

//1 2 8 9 2 4 9 12 4 7 10 13 6 8 11 15
int main() {
  int ary[MAX][MAX];
  int i = 0, j = 0;

  for(; i < MAX; i++) {
    j = 0;
    for(; j < MAX; j++) {
      scanf("%d", &ary[i][j]);
    }
  }
  showAry(ary);
  find(ary, MAX, MAX, 7);
}

以上就是讲解C语言二维数组中的查找的实例,希望能帮助需要同类型问题的朋友,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# C语言二维数组中的查找的实例  # 二维数组查找  # 关于C语言一维数组算法问题详解  # C语言一维数组初步学习笔记  # 关于C语言中的指针与二维数组  # C语言二维数组指针的概念及使用  # C语言与java语言中关于二维数组的区别  # 从头学习C语言之二维数组  # C语言面试C++二维数组中的查找示例  # C语言二维数组几种常用的表示方法  # C语言 指针与二维数组详解  # 直观理解C语言中指向一位数组与二维数组的指针  # C语言中的一维数组与二维数组的实现  # 组中  # 希望能  # 它本身  # 舍去  # 谢谢大家  # 从上到下  # 一个函数  # typedef  # unsigned  # gt  # stdlib  # MAX  # define  # int  # boolean  # stdio  # pre  # class  # strong  # 左到右 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境  如何登录建站主机?访问步骤全解析  JavaScript如何实现路由_前端路由原理是什么  Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】  制作企业网站建设方案,怎样建设一个公司网站?  利用JavaScript实现拖拽改变元素大小  Android仿QQ列表左滑删除操作  Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】  在centOS 7安装mysql 5.7的详细教程  Angular 表单中正确绑定输入值以确保提交与验证正常工作  laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法  LinuxCD持续部署教程_自动发布与回滚机制  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  大型企业网站制作流程,做网站需要注册公司吗?  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】  如何获取PHP WAP自助建站系统源码?  C#如何调用原生C++ COM对象详解  Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  javascript中的try catch异常捕获机制用法分析  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  Laravel Debugbar怎么安装_Laravel调试工具栏配置指南  JavaScript常见的五种数组去重的方式  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  如何快速搭建高效简练网站?  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  如何在Windows虚拟主机上快速搭建网站?  Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  详解jQuery中的事件  Laravel如何与Docker(Sail)协同开发?(环境搭建教程)  如何解决hover在ie6中的兼容性问题  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  javascript读取文本节点方法小结  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  如何快速搭建高效服务器建站系统?  如何在阿里云域名上完成建站全流程?  如何确认建站备案号应放置的具体位置?  Laravel如何实现API版本控制_Laravel版本化API设计方案  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法  西安专业网站制作公司有哪些,陕西省建行官方网站?  移动端脚本框架Hammer.js  Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】