标准C语言基础知识4

最后还有两个程序题,运用一下前面学到的知识!

二维数组
    一维数组相当于把变量排成一排,通过编号访问
    二维数组相当于把变量排成矩阵,通过行号和列号访问
    定义:  类型 数组名[行数][列数];
            int arr[3][5];
            [0,0][0,1][0,2][0,3][0,4]
            [1,0][1,1][1,2][1,3][1,4]
            [2,0][2,1][2,2][2,3][2,4]
    
    使用:  数组名[行下标][列下标];
            行下标: 0~行数-1
            列下标:0~列数-1 
    
    遍历:  需要与双层for循环配合,一般外层负责遍历行,内层循环负责遍历列

    #include <stdio.h>

    int main(int argc,const char* argv[])
    {
        int arr[3][5];
        for(int i=0; i<3; i++)
        {   
            or(int j=0; j<5; j++)
            {
                printf("%d ",arr[i][j]);
            }
            printf("\n");
        }   
    } 

    初始化:
        类型 数组名[行数][列数] = {{第一行},{第二行},{第三行},...};  
        注意:行数可以省略,列数不能省略
        注意:没有所谓的多维数组,所有的多维数组都是用一维数组来模拟的
    
    练习1:定义一个5*5的二维数组并初始化,找出其中的最大值的坐标
    练习2:定义一个5*5的二维数组,找出最小值下标,计算出周边的和是多少

变长数组:
    int num = 10;
    int arr[num];
    定义数组时使用变量作为它的长度,在代码编译期间数组的长度是不确定的,当执行到数组的定义语句时,
    它的长度才能确定下来,并且一旦确定就无法改变,这叫变长数组。

    优点:可以根据实际情况来确定数组的长度,达到节约内存的目的
    缺点:不可以初始化(初始化发生在编译期间)

    练习3:输入两个正整数m,n(1<=m,n<=6),然后输入数组arr[m][n]各个元素的值,然后计算出所有元素之和,统计数组中
    非零元素的个数,计算出所有元素的平均值、统计大于平均值的元素的个数
    练习4:显示N层杨辉三角
    1 0
    1 1 0
    1 2 1 0
    1 3 3 1

获取方向键的功能:使用头文件 getch.h 中的getch函数
    1、在windows中把 getch.h 头文件放入共享文件夹
    2、终端进入共享文件夹:
        cd /media/sf_share/
    3、复制头文件到标准库:
        sudo cp getch.h /usr/include
    4、加读权限:
        sudo chmod +r /usr/include/getch.h
    
    上:183 下:184 右:185 左:186 enter:10  tab:9 Esc:27 

走迷宫:
    1、定义二维数组作为迷宫
        0 <=> ' '
        1 <=> '#'
        2 <=> '@'
    2、定义变量记录老鼠的坐标
    3、记录游戏开始时间
    4、进入死循环
        1、清理屏幕 system
        2、显示迷宫(遍历打印二维数组)
        3、获取方向键并处理
            判断前方是否是路
                如果是:
                1、旧位置=0
                2、新位置=2
                3、更新老鼠坐标
        4、判断是否到达出口
            是:获取游戏结束时间
                结束程序
            不是:

推箱子:
    1、确认数字与字符的对应关系
        路     <=>' ' <=> 0     // ' '     
        墙壁   <=>'#' <=> 1     // '#' 
        人     <=>'@' <=> 2     // '@' 
        箱子   <=>'&' <=> 3     // '$'
        目标点 <=>'o' <=> 4     // '0'
        人                6     // '@'    
        箱子              7     // '$'
    2、定义二维数组地图
    3、定义人的坐标
    4、进入死循环
        1、清理屏幕并显示地图
        2、检查是否完成任务
            是:一共走了几步,结束程序
        3、获取方向键

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
从零开始 单片机 语言 刘建清 出版社: 国防工业出版社 发行时间: 2007 年01月 内容简介: 本书定位于让初学者从零起步,轻松学会单片机高级编程C语言以及实战技术。书中首先简要介绍了8051单片机的主要构成,然后重点介绍了单片机Cx51高级编程语言开发与仿真环境的使用方法,透彻地分析了Cx51的语法结构,并给出了大量实例。书中大多数实例和全部实验都经过了实验板的验证。 本书可供具有一定单片机基础的初学者,以及广大从事单片机应用系统开发研制的工技术人员阅读,也可以作为有关院校相关专业的教学参考用书。 目录: 第一章 单片基础知识  第一节 51系列单片机概述  第二节 80C51单片机的内部结构和外部引脚  第三节 80C51单片机的内部结构和外部引脚  第四节 51系列单片机的并行输入/输出接口  第五节 80C51单片机的时钟电路和复位电路 第二章 单片机C语言入门  第一节 认识C语言  第二节 简单C语言  第三节 单片机C语言开发步骤 第三章 单片机实验硬件环境的建立  第一节 单片机实验板  第二节 单片机仿真器  第三节 单片机编程器 第四章 Keli Cx51软件的使用  第一节 Keil Cx51简介  第二节  Keil Cx51软件的安装   第三节 uVision2集成开发环境  第四节 常用窗口介绍 第五章 Cx51数据与运算  第一节 标识符和关键字  第二节 数据类型  第三节 常量  第四节 变量   第五节 运算符和表达式 第六章  Cx51的基本语句  第一节 表达式语句和复合语句   第二节 条件选择语句   第三节 循环语句 第七章 Cx51函数  第一节 函数的分类和定义   第二节 函数的参数和返回值  第三节 函数的调用  第四节 函数变量的存储方式和种类 第八章 Cx51构造数据类型  第一节 数组  第二节 指针  第三节 结构  第四节 共用体  第五节 枚举 第九章 单片机中断、定时器串行口的C语言编程  第一节 单片机中断系统C语言编程   第二节 定时/计数器及实验  第三节 串行数据通信技术及实验  第十章 单片机实用接口C语言编程技术  第一节 LED显示器接口   第二节 链盘接口   第三节 LCD显示器接口   第四节 I2C总线接口  第五节 A/D和D/A转换接口   第六节 单片机应用技术综合实例 附录一 运算符的优先级和结合性 附录二 Keil Cx51编译器常见警告与错误信息的解决方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值