C语言之二维数组棋盘游戏
#include<iostream> #include<stdio.h>
using namespace std;
int main()
{
//-1 没人赢 0:O赢 1:X赢
int size;
printf("0表示“甲方”,1表示“乙方”\n\n");
printf("请输入矩阵的大小\n");
while (scanf("%d", &size) == )
{
int board[][];
int num_of_O;
int num_of_X;
int result = -;
int i, j;
for (i = ; i < size; i++)
for (j = ; j < size; j++)
{
scanf("%d", &board[i][j]);
} //检查行
for (i = ; i < size&&result == -; i++)
{
num_of_O = num_of_X = ;
for (j = ; j < size; j++)
{
if (board[i][j] == )
{
num_of_X++;
}
else if(board[i][j] == )
{
num_of_O++;
}
}
if (num_of_O == size)
{
result = ;
}
else
if (num_of_X == size)
{
result = ;
}
} //检查列
if (result == -)
{
for (j = ; j < size&&result == -; j++)
{
num_of_O = num_of_X = ;
for (i = ; i < size; i++)
{
if (board[i][j] == )
{
num_of_X++;
}
else
if (board[i][j] == )
{
num_of_O++;
}
}
if (num_of_O == size)
{
result = ;
}
else
if (num_of_X == size)
{
result = ;
}
}
}
//检查正对角线
num_of_O = num_of_X = ;
for (i = ; i < size; i++)
{
if (board[i][i] == )
{
num_of_X++;
}
else
if (board[i][i] == )
{
num_of_O++;
} } if (num_of_O == size)
{
result = ;
}
else
if (num_of_X == size)
{
result = ;
} //检查反对角线
num_of_O = num_of_X = ;
for (i = ; i < size; i++)
{
if (board[i][size - - i] == )//反对角线计算方法
{
num_of_X++;
}
else
if (board[i][size - - i] == )
{
num_of_O++;
}
} if (num_of_O == size)
{
result = ;
}
else
if (num_of_X == size)
{
result = ;
} if (result == -)
{
printf("抱歉啊,没有人赢哦!\n不服,再战!\n");
}
else
if (result == )
{
printf("恭喜!!!甲方赢啦\n");
}
else
if (result == )
{
printf("恭喜!!!乙方赢啦\n");
}
printf("请输入矩阵的大小\n");
}
return ;
}
C语言之二维数组棋盘游戏的更多相关文章
- C语言之二维数组
二维数组 还是一个数组,只不过数组中得每一个元素又是一个数组 1). 声明语法 类型 数组名[行][列]; 例: int nums[2][3];//2行3列的二维数组,保存的数据类型是int类型 c ...
- C语言 字符二维数组(多个字符串)探讨 求解
什么是二维字符数组? 二维字符数组中为什么定义字符串是一行一个? “hello world”在C语言中代表什么? 为什么只能在定义时才能写成char a[10]="jvssj" ...
- C语言中将二维数组作为函数参数来传递
c语言中经常需要通过函数传递二维数组,有三种方法可以实现,如下: 方法一, 形参给出第二维的长度. 例如: #include <stdio.h> void func(int n, char ...
- C语言回顾-二维数组
1.二维数组:是一个特殊的一维数组 完全初始化: 1)int a[2][3]={{1,2,3},{2,3,4}}; 2)连续赋值int a[2][3]={1,2,3,2,3,4}; 3)可以省略第一维 ...
- C语言教学--二维数组和指针的理解
对于初学者对二维数组和指针的理解很模糊, 或者感觉很难理解, 其实我们和生活联系起来, 这一切都会变得清晰透彻. 我们用理解一维数组的思想来理解二维数组, 对于一维数组,每个箱子里存放的是具体的苹果, ...
- C语言基础--二维数组
二维数组概念: 数组中的每一个元素又是一个数组, 那么这个数组就称之为二维数组,二维数组是特殊的一维数组. 二维数组格式: 元素类型 数组名称[一维数组的个数][每个一维数组的元素个数]; 元素类型 ...
- 【C语言】二维数组做形参
二维数组有两种形式: ①在栈上: int a[4][4] = {...}; ②在堆堆上: int ** a = new int *[4]; for ...
- 【学习笔记】【C语言】二维数组
1. 什么是二维数组 一个数组能表示一个班人的年龄,如果想表示很多班呢? 什么是二维数组?int ages[3][10]; 三个班,每个班10个人 相当于3行10列 相当于装着3个一维数组 二维数组是 ...
- iOS,object-c传参c语言的二维数组
有那么一瞬间,懒得用NSArray,NSNumber,NSValue等一大堆蛋疼的转换,所以就定义了一个C的二维数组,反正OC支持C混编,可是蛋疼往往是传递的,这里不疼了,哪里就要疼,想把一个c的二维 ...
随机推荐
- 用Eclipse 搭建一个Maven Spring SpringMVC 项目
1: 先创建一个maven web 项目: 可以参照之前的文章: 用Maven 创建一个 简单的 JavaWeb 项目 创建好之后的目录是这样的; 2: 先配置maven 修改pom.xml & ...
- vux 组件打造手机端项目
其实,我用vux组件的过程是这样的,哇!太方便了!!功能好全!!太简单了!!然后,就各种"跳坑".以下排坑环节. 1.安装vux:cnpm i -S vux; 比较顺利吧. 2 ...
- 【ASP.NET MVC 学习笔记】- 03 Razor语法
本文参考:http://www.cnblogs.com/willick/p/3224144.html 1.Razor语句以@开头. 2.每个View都有自己的Model属性,可通过@Model调用.语 ...
- LeetCode 163. Missing Ranges (缺失的区间)$
Given a sorted integer array where the range of elements are in the inclusive range [lower, upper], ...
- python核心编程一书笔记之第一篇
#!/usr/bin/env python# -*- coding:utf-8 -*- #env 是一个命令用来寻找系统中的python解释器.第二条解释使用utf-8编码 在类unix系统中允许py ...
- CentOS设置系统时间、硬件时间、以及定时校对时间
CentOS设置系统时间和时区 一.设置时区 方法一:使用setup工具 setup 选择Timezone configuration 选择Asia/Shanghai 空格键勾选上System clo ...
- Bluetooth Obex
OPP 1.2 which uses OBEX over L2CAP. OPP 1.1 connection and transfer happens over RFCOMM->L2CAP.
- 一、JAVA环境变量配置详解——JavaWeb点滴
JAVA环境变量JAVA_HOME.CLASSPATH.PATH设置详解 Windows下JAVA用到的环境变量主要有3个,JAVA_HOME.CLASSPATH.PATH. JAVA_HOME 指向 ...
- HDU1754 I hate it(线段树 单点修改)
好久没打线段树,来一道练练手,但说句实话,I really hate it!!!! 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少. 这让很多学生很反感. 不管 ...
- Pick apples(大范围贪心,小范围完全背包)
Pick apples Time Limit: 1000MS Memory Limit: 165536KB Submit Statistic Discuss Problem Description O ...