简单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 ...
随机推荐
- IOS开发之IOS8.0最新UIAlertController 分类: ios技术 2015-01-20 14:24 144人阅读 评论(1) 收藏
最近苹果更新的IOS8 对以前进行了很大的修改, 更新的API也让人捉急,据说iOS 8的新特性之一就是让接口更有适应性.更灵活,因此许多视图控制器的实现方式发生了巨大的变化.比如全新的UIPrese ...
- springMVC+Hibernate配置
本文描述下 sypro 项目中使用 springMVC+Hibernate配置,初学SpringMVC做下简单整理解. 1.web项目首先我们要使用 web.xml文件将 spring配置引入进来 & ...
- mysql 省市联动sql 语句
/*MySQL Data TransferSource Host: localhostSource Database: virgoTarget Host: localhostTarget Databa ...
- React Native 之 HelloWorld
1. 切换目录 输入之前要切换到要保存的目录 2. 修改下载源 cd ~/ vim .npmrc 添加 registry = https://registry.npm.taobao.org 3. 在终 ...
- spark RDD编程,scala版本
1.RDD介绍: RDD,弹性分布式数据集,即分布式的元素集合.在spark中,对所有数据的操作不外乎是创建RDD.转化已有的RDD以及调用RDD操作进行求值.在这一切的背后,Spark会自动 ...
- 1.3.2. App Icon 和 Launch Image(Core Data 应用程序实践指南)
App Icon: 选中 Assets.xcassets 选择 AppIcon ,并拖入图片(29.40.60) Launch Image: 创建 Launch Image 拖入图片(2x.R4)
- ThinkPHP 分组,应用,跳转
一.多应用配置技巧 在主入口文件index.php同级目录,新建一个 config.php 写入公共的配置项,然后在前后台各自的配置文件config.php中 $arr = include ...
- EXP/IMP 命令参数
http://www.cnblogs.com/sopost/archive/2010/01/19/2190125.html 1.EXP: 1.完全: EXP ...
- Java反射机制示例
链接: http://www.cnblogs.com/rollenholt/archive/2011/09/02/2163758.html package com.stono.reftest; imp ...
- 利用apache的mod_rewrite做URL规则重写
使用mod_rewrite做url重写,伪静态,做过很多次,这次用几个例子记下来,便于后面查用. 使用方法: 1.在conf目录的httpd.conf文件中找到: LoadModule rewrite ...