#include
void main()
{
int k = 0;
char ch, a[10], *s[10] = { "123","231","312","321" };//定义字符 字符串 字符串数组变量
while ((ch = getchar()) != '\n' && k < 9)//循环读取字符 先将读取的字符放入ch变量 然后再判断是否不是换行 如果字符不是换行 而且读取的字符数小于9 就继续循环
if (ch >= '5' && ch <= '8')//如果读到到的字符在5至8之间
a[k++] = ch;//记录该字符到a字符变量数组里 k是字符串长度 k++ 是先返回原始值 然后自加1 等效于 a[k]=ch;k=k+1;
a[k] = '\0';//将a字符串后面放上结束标记
for (k = 0; a[k] != '\0'; k++)//循环a字符串内容
printf("%s ", s[('9' - a[k]) - 1]);//输出 将字符9减去读取的字符减1的值 当做s字符串数组的索引
/*
输出过程
比如输入了 567 保存到了a字符串里
那么 循环如下
索引=9-5-1 = 3
看一下 s字符串的3索引下是什么值 是321 所以输出 321
然后下一次循环
索引=9-6-1 = 2
看一下 s字符串的2索引下是什么值 是312 所以输出 312
然后下一次循环
索引=9-7-1 = 1
看一下 s字符串的1索引下是什么值 是231 所以输出 231
所以输入567 后 结果是 321 312 231
*/
scanf("%d", &k);
}
#include
#include
struct stud {
char name[10];
int score[2];
}*p;
void main()
{
int i = 0;
struct stud t[4] = { { "Lisa",98,87 },{ "Tom",89,86 },{ "John",68,79 },{ "Lili",94,90 } };//定义结构体变量数组t 并初始化数据
p = t + 2;//p结构指针等于t加2
printf("%s \n", t[0].name);//输出名字结果
printf("%d\n", p->score[0] + p->score[1]);//输出两个分数的和
printf("%d\n", t[2].score[0] + t[2].score[1]);//这个与上面的结果相同 上面的是指针运算而已
scanf("%d", &i);
}
C语言是一种编程语言,C语言编写的程序要经过编译器编译成*.exe或*.o后等才可以在电脑上运行。比较好的编译器有TC,gcc等!
1、创建一个文件名为main.c,然后用任意一个款你熟悉的文本编辑软件,比如说记事本,在里面输入下面的代码,记住,要用文本文件编辑软件,不能用word的。
2、然后用gcc编译程序:
gcc ./main.c
你会得到一个a.out文件。
3、运行a.out
c语言小游戏实现原理
1、二维数组实现棋盘
二维数组,用两个for 循环,随便输出一个固定符号做棋盘,如 *
2、判定玩家
设计一个计步变量step, 每走一步 step++, 则玩家=step%2+1;
3、判定输赢(重点)
设计方向数组 dircX[4] ,dircY[4],因为如果要判断是否练成五子,只有1竖着2横着3斜下4斜上
竖着的话就是 x-1,y不变
横着的话就是x不变,y+1; 斜下: x+1,y+1; 斜上 x-1;y+1
这样你就可以赋值dircX={-1,0,1,-1} dercY={0,1,1,1}
每当玩家落下一子,就全局判断每个子的四个方向有没有第二子,如果有,循环判断有没有第三子(利用 x+=dircX[1]),直到五子完成,结束。
程本系统1.程甲本