简单C程序,迷宫
#include<stdio.h>
#include <stdlib.h>
int visit(int, int);
int maze[][] =
{
{, , , , , , , , ,},
{, , , , , , , , ,},
{, , , , , , , , ,},
{, , , , , , , , ,},
{, , , , , , , , ,},
{, , , , , , , , ,},
{, , , , , , , , ,},
{, , , , , , , , ,},
{, , , , , , , , ,},
{, , , , , , , , , },
{, , , , , , , , , },
};
int startI = , startJ = ; // 入口
int endI = , endJ = ; // 出口
int success = ; int main(void) {
int i, j; printf("显示迷宫:\n");
for (i = ; i < ; i++) {
for (j = ; j < ; j++)
if (maze[i][j] == )
printf("■");
else
printf(" ");
printf("\n");
} if (visit(startI, startJ) == )
printf("\n沒有找到出口!\n");
else {
printf("\n显示路径:\n");
for (i = ; i < ; i++) {
for (j = ; j < ; j++) {
if (maze[i][j] == )
printf("■");
else if (maze[i][j] == )
printf("▲");
else
printf(" ");
}
printf("\n");
}
} return ;
} int visit(int i, int j) {
maze[i][j] = ; if (i == endI && j == endJ)
success = ; if (success != && maze[i][j + ] == ) visit(i, j + );
if (success != && maze[i + ][j] == ) visit(i + , j);
if (success != && maze[i][j - ] == ) visit(i, j - );
if (success != && maze[i - ][j] == ) visit(i - , j); if (success != )
maze[i][j] = ; return success;
}
//参考.c
#include<iostream> using namespace std;
void strMatrix(int *a1, int **a2, int n);
void output(int **a2, int n);
int main()
{
int n, i, c, d;
cout << "How many numbers do you want to input:" << endl;
cin >> n;
int *arr1 = new int[n];
int **arr2 = new int*[n];
for (i = ; i < n; i++)
arr2[i] = new int[n];
cout << "Please input the numbers:" << endl;
for (i = ; i < n; i++)
cin >> arr1[i];
cout << "Please input the ralations:" << endl;
cin >> c;
cin >> d;
strMatrix(arr1, arr2, n);
output(arr2, n);
}
void strMatrix(int *a1, int **a2, int n)
{
for (int i = ; i < n; i++)
for (int j = ; j < n; j++)
{
if (a1[i] % a1[j] == )
a2[i][j] = ;
else
a2[i][j] = ;
}
}
void output(int **a2, int n)
{
for (int i = ; i < n; i++)
{
for (int j = ; j < n; j++)
cout << a2[i][j] << " ";
cout << endl;
}
} void zfx(int a[M][M], int n)
{
int i = , vale1 = , vale2 = ;/*vale1确定关系的自反性,vale2
判断关系的反自反性*/
while (i < n)
{
if (a[i][i] == ) vale2 = ;
else vale1 = ;
i++;
}
if (vale1 == ) printf("zfx\n");
if (vale2 == ) printf("fzfx\n");
if (!(vale1) && !(vale2)) printf("wzfxywfzfx\n");
}
void dcx(int a[M][M], int n)
{
int i, j, vale3 = , vale4 = ;/*vale3确定关系的对称性,vale4
判断关系的反对称性*/
for (i = ; i < n; i++)
for (j = ; j < i; j++)
if (a[i][j] == a[j][i])
vale4 = ;
else vale3 = ;
if (vale3 == ) printf("dcx\n");
if (vale4 == ) printf("fdcx\n");
if (!(vale3) && !(vale4)) printf("wdcx wfdcx\n");
} void cdx1(int a[M][M], int n)/*用MM ⊆2 算法来判断传递 性*/
{
int b[M][M], i, j, k, vale = ;
for (i = ; i < n; i++)
for (j = ; j < n; j++)
{
b[i][j] = ;
for (k = ; k < n; k++)
b[i][j] += a[i][k] * a[k][j];/*计算 2M */
}
for (i = ; i < n; i++)
for (j = ; j < n; j++)
if (b[i][j] != )
b[i][j] = ;
for (i = ; i < n; i++)
for (j = ; j < n; j++)
if (b[i][j] == )
if (a[i][j] != b[i][j])
vale = ;
if (vale)
printf("ycdx\n");
else
printf("wcdx\n");
}
void cdx2(int a[M][M], int n)/*用warshall算法来求传递闭
包数组b */
{
int b[M][M], i, j, k, vale = ;
for (i = ; i < n; i++)
for (j = ; j < n; j++)
b{ [i][j] = a[i][j];
for (k = ; k < n; k++)
i{ (f a[i][j] && (a[i][k] || a[j][k]))
b[i][k] = ;
}
}
for (i = ; i < n; i++) /* 判断数组a和b相等 */
for (j = ; j < n; j++)
(iaf[i][j] != b[i][j])
{
vale = ; break;
}
if (vale == ) printf("cdx\n");
else printf("wcdx\n");
}
简单C程序,迷宫的更多相关文章
- ACEXML解析XML文件——简单示例程序
掌握了ACMXML库解析XML文件的方法后,下面来实现一个比较完整的程序. 定义基本结构 xml文件格式如下 <?xml version="1.0"?> <roo ...
- 用python开发简单ftp程序
根据alex老师视频开发的简单ftp程序,只能实现简单的get功能 ftp客户端程序: #!/usr/bin/env python #_*_ coding:utf-8 _*_ import socke ...
- 关于SIGSLOT的一个简单的程序
废话少说直接看代码即可,这只是一个简单的程序,可以帮我们简单地明白SIGSLOT是怎么回事.至于深入研究自己去百度吧. #include "sigslot.h" using nam ...
- 关于《数据格式修改》的简单应用程序(C语言)
关于<数据格式修改>的简单应用程序(C语言) 至亲爱的博友: 大家好,好久不见了.由于博主还是一名大学在校生,不可避免的需要和指导教师共同完成一些项目,因此前一段时间暂时停止了博客的更新. ...
- 简单购物车程序(Python)
#简单购物车程序:money_all=0tag=Trueshop_car=[]shop_info={'apple':10,'tesla':100000,'mac':3000,'lenovo':3000 ...
- 基于C语言libvirt API简单小程序
libvirt API简单小程序 1.程序代码如下 #include<stdio.h> #include<libvirt/libvirt.h> int getDomainInf ...
- 图解简单C程序的运行时结构
程序在内存中的存储分为三个区域,分别是动态数据区.静态数据区和代码区.函数存储在代码区,全局变量以及静态变量存储在静态数据区,而在程序执行的时候才会在动态数据区产生数据.程序执行的本质就是代码区的指令 ...
- MFC制作简单通讯录程序
学习c++和MFC一段时间了,苦于没有项目实战,所以自己写了一个简单的简单通讯录程序,以前用c#写简单很多,例程是这本书上的实例,我的第一个winform程序也是从这本书上学的,总结c#写的话更简单, ...
- Kubernetes学习笔记之安装minikube并运行个简单应用程序
前言:本笔记仅记录学习记录,可能存在错误!!!使用的环境是Ubuntu Desktop 20.04,也有用Windows 10 操作的,根据的文档是minikube的文档教程,链接:https://m ...
随机推荐
- 分页。php 引用代码
<?php /** file: page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 private $lis ...
- 可持久化Trie树初步
可持久化Trie树和可持久化线段树很像,依次插入信息,通过减法来进行历史版本查询. 2015年11月27日 bzoj3261 最大异或和 我们需要计算 a[p] xor a[p+1] xor ... ...
- SRM 592 DIV2 报告
昨天下午查看邮箱,看到了topcoder的SRM比赛通知和cf的比赛通知,当时什么也不想做,心里空荡荡的,忽然就想参加一下,试试看.吃完晚饭回来一看,就剩十几分钟了,匆忙把平台下了,就开始等待比赛开始 ...
- 让Terminal显示git分支
vi ~/.bash_profile ### 显示git分支 parse_git_branch () { git branch 2> /dev/null | sed -e '/^[^*]/d' ...
- Linux用户和用户组管理总结
Linux下和用户和用户组管理有关的配置文件: /etc/group Group account information. /etc/gshadow Secure group account info ...
- 常用SQL DDL语句
常用SQL DDL语句 DDL-数据库定义语言:直接提交的.CREATE:用于创建数据库对象.DECLARE:除了是创建只在过程中使用的临时表外,DECLARE语句和CREATE语句非常相似.唯一可以 ...
- Angular - - $compile编译服务与指令
$compile 这是个编译服务.编译一段HTML字符串或者DOM的模板, 产生一个将scope和模板连接到一起的函数. 编译服务主要是为指令编译DOM元素,下面的一大段也是主要介绍指令的. 下面是一 ...
- nginx集群tomcat
一.准备工作 下载nginx,http://nginx.org/,本文采用nginx-1.8.0,下载之后直接解压,免安装 下载tomcat,以配置3台tomcat服务器做负载均衡为例 二.修改tom ...
- python py_innodb_page_info.py -v /usr/local/var/mysql/ibdata1
mylib.py #encoding=utf-8 import os import include from include import * TABLESPACE_NAME='D:\\mysql_d ...
- 使用ActionBar实现下拉式导航
ActionBar除可提供Tab导航支持之外,还提供了下拉式(DropDown)导航方式.下拉式导航的ActionBar在顶端生成下拉列表框,当用户单击某个列表项时,系统根据用户单击事件导航指定Fra ...