二维数组中行、列个数的表示方法以及sizeof的区分

本文介绍如何使用sizeof函数来计算二维数组的总字节数、行数及列数,并通过实例展示了如何在for循环中应用这些计算。

    设有二维数组 a[3][4] 在该数组被引用是不会因为后期二维数组的行 、列的改变而改变呢?

    我们可以运用sizeof函数

    sizeof(a)——>二维数组总的字节数(3*4*不同类型的字节数)

    sizeof(a[0])——>二维数组中以啊[0]为首地址的一维数组的字节数(4*不同类型的字节数)

    sizeof(a[0][0])——>二维数组中一个元素的字节数(不同类型的字节数)

    进而有:

    sizeof(a)/sizeof(a[0][0])——>二维数组元素的总个数;

    sizeof(a[0])/sizeof(a[0][0])——>二维数组的列数,即以a[0]、a[1]...开始的一维数组的元素个

     数;

    sizeof(a)/sizeof(a[0])——>二维数组的行数,即各一维数组的个数;

    一般是在:for循环用处比较大。

根据以下要求用c语言完成五子棋游戏,并且能保证生成的代码可以在devc++上运行,同时不使用graphics.h库 1. 基本要求 (1)实现五子棋游戏的各个规则 (2)使用图形函生成棋盘等。 (3)用文件存储用户的进度 (4)用户开始新游戏时,先检测是否有历史记录,有的话可以继续未完成的棋局,也可以重新开始。 (5)实现用户排名功能,要求能够将排名信息进行保存,存至文件永久保存。 (6)当新用户的成绩需要插入排名表时,要能够修改原表信息;如果是同一用户需要更新成绩,则覆盖原成绩。 (7)插入、修改、删除排名信息等要求使用链表实现。 2. 目的与要求 (1) 游戏规则:传统五子棋的棋具与围棋相同,棋子分为黑白两色,盘为19×19,棋子放置于棋盘线交叉点上。两人对局,各执一色,轮流下一子。如果某一方下棋的棋子最先5子连续连成一线(行、、对角线),则该方为赢家,游戏一局结束;如果棋盘下满未定胜负则为平局,游戏一局结束。 (2) 功能模块:将程序分为图形显示、玩家控制、胜负判断和玩家计分四个模块。 ① 图形显示模块:程序开始运行时,给出欢迎及帮助界面;游戏开始后要求生成19×19的棋盘图像,并在棋盘上方提示当前落子方棋子颜色,游戏进行过程中,要求实时显示棋盘上已落下的棋子;分出胜负后,要求给出游戏结束画面。 ② 玩家控制模块:程序开始时,需玩家确定而后开始游戏;游戏过程中,两个玩家通过不同的按键移动光标,选择落子;游戏结束时,有玩家选择是否开始新棋局。 ③ 胜负判断模块:实时监测棋盘上棋子,一旦某一色棋子出现五子连线,终止游戏程序,并着色连成一线的五子,弹出该色玩家胜出界面。 ④ 玩家计分模块:一方玩家再胜利后通过对文件的操作进行计分,并输出于计分板上。 (3) 其他要求: ① 进入演示程序后,即显示欢迎界面,按任何键进入帮助界面,再按任何键可以进入主界面开始游戏。 ② 棋子的移动与落子有键盘上按键控制,本程序选取1P按键为W、S、A、D和空格键,2P按键为↑、↓、←、→和回车键,分别代表上移、下移、左移、右移光标和落子。在光标移动的过程中,光标按照玩家按键移动;在玩家按下落子按键后,程序自动调用棋子显示子程序和判断胜负子程序。1P、2P的落子后,程序会为落子处的组元素赋一个特定值,用于判定胜负。 ③ 游戏中esc键可以直接退出游戏,backspace键可以操作进行悔棋。 ④ 游戏过程中,如果玩家1或者玩家2有一方获得胜利后,程序自动将提示哪一方获得了胜利,并将着色构成连珠的5个子。 ⑤ 游戏结束且玩家选择不再继续后,跳出结束界面。退出程序。 3. 实现提示 (1) 程序不涉及人机交互,算法较为简单。首先,以落子为出发点,分别沿着水平、竖直和两条对角线方向(分别为45°和135°)进行搜索,看在这四个方向是否最后落子的一方构成连续五个棋子。为了提高搜索速度,尽量减少搜索范围。以落子为中心两侧各判断四子共九子,判断这九子中是否有最后落子的一方的连续五个棋子。只要最后落子的一方在任一方向上有连续五个棋子,就表示该盘棋局已经分出胜负。 (2) 监控键盘输入的函及各键的ASCII码值;图形方式下的输入、输出及其相关的函;判定五子成一线的方法,即矩阵中行向、向、两条对角线方向上是否有连续五子;调用系统提供的声音函等。
最新发布
07-06
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值