C
沧海一笑浅悠悠
这个作者很懒,什么都没留下…
展开
-
C/C++八进制赋值与输入常见陷阱
在C语言及C++中,一个整形数值前如果有一个数字0,则代表该整形数值为八进制数。例如int a,a = 010,则a的十进制数值为8,八进制数值为10。但是在输入a的时候,输入010,如果用scanf(“%d”,&a),则将会被当做十进制10识别。而在c++中使用cout<<a时,也将会被默认为十进制输入。以下是测试用例。#include<iostream>usi...原创 2018-03-29 19:01:30 · 3518 阅读 · 0 评论 -
C语言允许初始化列表中末尾出现多余的逗号
C语言允许初始化列表中出现多余的逗号,例如:int days[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, };为什么这种特性是有用的?#include <stdio.h> int main(int argc,char** argv){ enum qs{ Va = 5, Vb, ...原创 2018-04-01 23:27:16 · 3370 阅读 · 0 评论 -
[位运算]dfs+位运算解决N皇后问题
在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。你的任务是,对于给定的N,求出有多少种合法的放置方法。共有若干行,表示棋盘和皇后的数量;如果N=0,表示结束。分析:本篇文章重点介绍位运算解决N皇后的思想,并不是解决特定的问题。和普通算法一样,这是一个递归过程,程序一行一行地寻找可以放皇后的地方。过程带三个参数,r...原创 2018-04-13 23:11:06 · 733 阅读 · 0 评论 -
[杂项项目]C语言打造智能AI小游戏——三子棋
三子棋具体就不多介绍了,AI棋用O表示,我们的棋用X表示。先手后手自己选。这里主要说一下AI算法。首先AI会对整个棋盘MAP[3][3]进行遍历,每个格子都有一个权值weight[i][j]。权值的第一次计算方法是对每一行i每一列j进行计算,计算基于这一格有几种获胜的路线。例如没有走时,9个格的权值为:[][][] 3 2 3[][][] 2 4 2[][][] 3 2 3...原创 2018-04-22 21:51:38 · 1320 阅读 · 1 评论 -
[杂项项目]纯C语言实现控制台小游戏——数字拼图
一年前写的小游戏,当时感觉小有成就,现在发现缺陷真的很多。不禁感叹,当时为什么会用那么多goto呢。在这里真的建议大家不要用goto。只是现在懒得改了,毕竟是小程序。贴出来供大家参考。如果有时间后序再添加注释。如有问题欢迎评论。#include <stdio.h>#include <stdlib.h>#include<math.h>#include <...原创 2018-04-20 22:48:10 · 1252 阅读 · 1 评论 -
[杂项项目]纯C语言实现随机生成数独九宫格
一年前的程序,可以生成一个数独的九宫格。当时想这种方法想了3天,终于实现了。由于当时刚熟悉指针,因此指针用的比较多。本人比较懒,先把代码贴出来,后序补充具体实现方法。#include <stdio.h>#include <stdlib.h>#include <time.h>void main(){ int a[9][9] = { 0 }; int ...原创 2018-04-20 22:53:45 · 4617 阅读 · 1 评论 -
[杂项项目]C语言实现小游戏——控制台扫雷
程序比较简单,需要输入坐标x,y进行翻牌。当时现场演示时不到50分钟边讲边写的,实现了基本的扫雷功能,只是没有计分计时排名之类的辅助功能。由于程序较简单,也没必要再加工了。另外本程序的特点是第一次输入一定不会是雷。此外,如果翻牌后周围没有雷,即为0,将会搜索周围所以为0的牌。此处用到了dfs。仅供参考。项目版:mine.h#pragma once#define BOOM 10#define S...原创 2018-04-20 23:01:26 · 937 阅读 · 1 评论