趣味程序C语言
C语言趣味程序百例精解大全

94.兔子产子
95.将阿拉伯数字转换为罗马数字
96.选美比赛
97.满足特异条件的数列
98.八皇后问题
99.超长正整数的加法
100.数字移动
《C语言趣味程序百例精解》CHM V1.0
第七章-逻辑推理与判断
48.新娘和新郞
49.委派任务
50.谁在说谎
51.谁是窃贼
52.黑与白
53.谜语博士的难题(1)
54.谜语博士的难题(2)
55.哪个大夫哪天值班
56.区分旅客国籍
57.谁家孩子跑最慢
65.乘式还原(2) 思考题
68.九位累进可除数 思考题
76.小明买书 思考题
77.波松瓦的分酒趣题 思考题
87.青蛙交换 思考题
88.常胜将军 思考题
89.抢30 思考题
90.搬山游戏 思考题
92.人机猜数游戏(2) 思考题
96.选美比赛 思考题
98.八皇后问题 思考题
99.超长正整数的加法 思考题
本电子书所有代码均在Windows XP SP2,Microsoft Visual C++ 6.0环境下测试通过。
在电子书制作过程中,本人得到了CSDN以下网友的热心帮助,特此感谢!
他们是gfxiang,lihui_shine,raincatss。
如果发现任何错误,包括错别字,程序问题,请立即指出,以便修正。
2.绘制余弦曲线和直线 在屏幕上显示0-360度的cos(x)曲线与直线f(x)=45*(y-1)+31的迭加图形。其中cos(x)图形用“*”表示,f(x)用“+”表示,在两个图形相交的点上则用f(x)图形的符号。 *问题分析与算法设计 本题可以在上题的基础上进行修改。图形迭加的关键是要在分别计算出同一行中两个图形的列方向点坐标后,正确判断相互的位置关系。为此,可以先判断图形的交点,再分别控制打印两个不同的图形。 *程序注释与说明 #include #include void main() { double y; int x,m,n,yy; for(yy=0;yy #include void main() { double y; int x,m,n; for(y=1;y>=-1;y-=0.1) { m=(int)(asin(y)*10); n=(int)(acos(y)*10); for(x=0;x
C语言趣味程序百例

C语言趣味程序百例(1):绘制余弦曲线public class test1{public static void main(String args[]){double y;double x, m;for (y=1;y>-1;y-=0.1) {m= Math.acos(y) * 10;for (x = 1; x < m; x++)System.out.print(" ");System.out.print("*");for (; x < 62 - m; x++)System.out.print(" ");System.out.println("*");}}}C语言趣味程序百例(3):绘制圆public class test3{public static void main(String args[]) {double y;double x, m;for(y=10;y>=-10;y--){m=2*Math.sqrt(100-y*y);for(x=1;x<30-m;x++)System.out.print(" ");System.out.print("*");for(;x<30+m;x++)System.out.print(" ");System.out.println("*");}}}import java.util.*;public class test4{public static void main(String args[]){int max=0;int min=100;double sum=0;for(int i=1;i<=10;i++){System.out.printf("请输入第"+i+"个分数:\n");Scanner reader=new Scanner(System.in);int x=reader.nextInt();sum+=x;if(x> max) max=x;if(x< min) min=x;}System.out.println("无效的最高分和最低分:"+max+" , "+min);System.out.println("最后选手的得分是:"+(sum-max-min)/8.0);}}public class test5{public static void main(String args[]){for (int i=999;i>99;i--) {if (555555%i==0) {System.out.println("最大约数="+i);return;}}}}C语言趣味程序百例(12):抓交通肇事犯public class test12{public static void main(String args[]){int k;for(int i=1;i<=9;i++){for(int j=0;j<=9;j++){if(i!=j){k=i*1000+i*100+j*10+j;for(int c=31;c< 100;c++){if(c*c==k)System.out.println("肇事车牌号是"+k);}}}}}}public class test38{public static void main(String args[]){int count = 0;for (int i = 0; i <= 100; i++)for (int j = 0; j <= 50; j++)for (int k = 0; k <= 20; k++) {if (i + j * 2 + k * 5 == 100) {System.out.println(count++ + ":" + i + "-" + j + "-" + k);}}}}public class test40{public static void main(String args[]){for (int i = 0; i <= 3; i++)for (int j = 0; j <= 3; j++) {if (8 - i - j <= 6)System.out.println("Res=" + i + " White=" + j + " Black="+ (8 - i - j));}}}C语言趣味程序百例(54):博士的难题2public class test54{public static void main(String args[]){for (int a = 1; a <= 3; a++)for (int b = 1; b <= 3; b++)for (int c = 1; c <= 3; c++)if ((a != b && b != c && a != c)&& (a == 1 && b == 1 || a == 2 && b != 1 || a == 3)&& (b == 1 && b == 3 || b == 2 && b != 3 || b == 3)&& (c == 1 && b == 2 || c == 2 && b != 2 || c == 3)) {System.out.println("1表示诚实族,2表示说谎族,3表示两面族");System.out.println("a=" + a);System.out.println("b=" + b);System.out.println("c=" + c);}}}C语言趣味程序百例(62):奇特立方体public class test62{public static void main(String args[]){int x[]=new int[8];for(int i=0;i<8;i++){x[i]=Integer.parseInt(args[i]);}new test62().cube62(x);}public void cube62(int x[]) {int n = 8;boolean success=false;for (int a = 0; a < n; a++)for (int b = 0; b < n; b++)for (int c = 0; c < n; c++)for (int d =0; d < n; d++)for (int e = 0; e < n; e++)for (int f = 0; f < n; f++)for (int g = 0; g < n; g++)for (int h =0; h < n; h++) {if (notEquls(new int[] { x[a],x[b], x[c],x[d],x[e],x[f],x[g],x[h]})) {if(cube62(x[a],x[b], x[c], x[d], x[e], x[f], x[g], x[h])) return;}}if(success!=true) System.out.println("不能构成奇妙立方体");;}public boolean cube62(int a, int b, int c, int d, int e, int f, int g, int h) {boolean success=false;int s = a + b + c + d;if (s == e + f + g + h)if (s == a + b + e + f)if (s == c + d + g + h)if (s == a + c + e + g)if (s == b + d + f + h) {System.out.println("能构成奇特立方体");System.out.print(" a=" + a);System.out.print(" b=" + b);System.out.print(" c=" + c);System.out.print(" d=" + d);System.out.print(" e=" + e);System.out.print(" f=" + f);System.out.print(" g=" + g);System.out.println(" h=" + h);System.out.println("构成的奇特立方体如下图:");System.out.println(" e/----------/f");System.out.println(" a/----------/b|");System.out.println(" | | | |");System.out.println(" | | | |");System.out.println(" | | | |");System.out.println(" |g/--------|-/h");System.out.println(" c/----------/d");return true;}return success;}public boolean notEquls(int[] a) {if (a == null || a.length == 0 || a.length == 1)return true;for (int i = 0; i < a.length; i++) {for (int j = 0; j < a.length; j++) {if (a[i] == a[j] && i != j) {return false;}}}return true;}}public class test49{public static void main(String args[]){for (int a = 0; a <= 1; a++)for (int b = 0; b <= 1; b++)for (int c = 0; c <= 1; c++)for (int d = 0; d <= 1; d++)for (int e = 0; e <= 1; e++)for (int f = 0; f <= 1; f++) {if (a + b >= 1&& a + d <= 1&& a + e + f == 2&& (b + c == 0 || b + c == 2)&& (c + d == 1)&& ((d == 0 && e == 0) || (d == 1 ))) {System.out.println("0是不去,1是去");System.out.println("a="+a);System.out.println("b="+b);System.out.println("c="+c);System.out.println("d="+d);System.out.println("e="+e);System.out.println("f="+f);}}}}import java.io.*;public class test10{public static void main(String[] args) throws IOException{BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("input int:");String s=br.readLine();int val=Integer.parseInt(s);System.out.println(getBits(val));}public static String getBits(int value){int displayMask=1<<31;StringBuffer buf=new StringBuffer(35);for(int c=1;c<=32;c++){buf.append((value & displayMask)==0? '0':'1');value<<=1;if(c%8==0)buf.append(' ');}return buf.toString();}}public class test9{public static void main(String args[]){int n=Integer.parseInt(args[0]);System.out.println("N="+n);for(int i=0;i<=n;i++){for(int j=0;j< 12-i;j++) System.out.printf(" ");for(int j=1;j< i+2;j++) System.out.printf("%6d",c(i,j));System.out.println();}}public static int c(int x,int y){int z;if((y==1)||(y==x+1)) return 1;z=c(x-1,y-1)+c(x-1,y);return z;}}C语言趣味程序百例(79):随机数求圆周率public class test79{public static void main(String args[]){double all=10000000;double l=1000000;double pai=0;double in=0;double x=0,y=0;for (int i=0;i<all;i++) {x=(Math.random()*l);y=(Math.random()*l);if(x*x+y*y<l*l)in++;}pai=(in/all*4);System.out.println("Times/All="+in+"/"+all+" "+"π~="+pai);}}。
好玩的c语言代码

好玩的c语言代码以下是一些好玩的 C 语言代码:1. Hello World#include <stdio.h>int main() {printf("Hello World!\n");return 0;}2. 乘法表#include <stdio.h>int main() {int i, j;for(i = 1; i <= 9; i++) {for(j = 1; j <= i; j++) {printf("%d x %d = %d ",j,i,i*j);}printf("\n");}return 0;}3. 猜数字游戏#include <stdio.h>#include <stdlib.h>#include <time.h>int main() {int number, guess, count = 0;srand(time(NULL));number = rand() % 100 + 1; // 随机一个 1~100 的数printf("猜一个 1~100 的数字:\n");do {scanf("%d",&guess);count++;if(guess > number) {printf("太大了,请继续猜:\n");} else if(guess < number) {printf("太小了,请继续猜:\n");} else {printf("恭喜你,猜对了!你一共猜了 %d 次。
\n",count); }} while(guess != number);return 0;}4. 计算圆的周长和面积#include <stdio.h>#define PI 3.1415926535int main() {float r, circumference, area;printf("请输入圆的半径:\n");scanf("%f",&r);circumference = 2 * PI * r; // 周长公式area = PI * r * r; // 面积公式printf("圆的周长:%f\n",circumference);printf("圆的面积:%f\n",area);return 0;}5. 温度转换#include <stdio.h>int main() {float fahrenheit, celsius;printf("请输入华氏度:\n");scanf("%f",&fahrenheit);celsius = (fahrenheit - 32) * 5 / 9; // 华氏度转摄氏度公式 printf("摄氏度:%.2f\n",celsius);return 0;}。
CC++语言经典实用趣味程序设计编程百例精解

#include<stdio.h> #include<math.h> int main() { double y; int x,m,n,yy; for(yy=0;yy<=20;yy++) /*对于第一个y坐标进行计算并在一行中打印图形*/ { y=0.1*yy; /*y:屏幕行方向坐标*/ m=acos(1-y)*10; /*m: cos(x)曲线上y点对应的屏幕列坐标*/ n=45*(y-1)+31; /*n: 直线上y点对应的列坐标*/ for(x=0;x<=62;x++) /*x: 屏幕列方向坐标*/ if(x==m&&x==n) printf("+"); /*直线与cos(x)相交时打印“+”*/ else if(x==n) printf("+"); /*打印不相交时的直线图形*/ else if(x==m||x==62-m) printf("*"); /*打印不相交时的cos(x)图形*/
C/C++语言经典、实用、趣味程序设计编程百例精解
注:本电子书所有程序 均是来自互联网,经过本人收集制作完成,希望对 大家学习C++有所帮助!
Mr.SjunLeabharlann 2008.08.08Email:Shen jun48@
1.绘制余弦曲线 2.绘制余弦曲线和直线 3.绘制圆 4.歌星大奖赛 5.求最大数 6.高次方数的尾数 7.阶乘尾数零的个数 8.借书方案知多少 9.杨辉三角形 10.数制转换 11.打鱼还是晒网 12.抓交通肇事犯 13.该存多少钱 14.怎样存钱利最大 15.捕鱼和分鱼 16.出售金鱼 17.平分七筐鱼 18.有限 5 位数 19.8 除不尽的自然数 20.一个奇异的三位数 21.4 位反序数 22.求车速 23. 由两个平方三位数获得 三个平方二位数 24.阿姆斯特朗数 25.完全数 26.亲密数 27.自守数 28.回文数 29.求具有 abcd=(ab+cd)2 性质的四位数 30.求素数 31.歌德巴赫猜想 32.可逆素数 33.回文素数 34.要发就发 35.素数幻方 36.百钱百鸡问题
C语言趣味编程100例

/*保证每次循环时 s 的初值为 0*/ /*判断 j 是否为 i 的因子*/
3.2 亲 密 数
1.问题描述
如果整数 A 的全部因子(包括 1,不包括 A 本身)之和等于 B;且整数 B 的全部因子 (包括 1,不包括 B 本身)之和等于 A,则将整数 A 和 B 称为亲密数。求 3000 以内的全部
注意:C 语言中的整数问题,经常涉及判断两数是否相等或某变量(或表达式)是否 满足某一条件的情况,对于这类问题,初学者经常会存在对赋值符号“=”与等于号“==” 混淆的问题。
赋值符号“=”:基本的赋值运算符是“=”。它的优先级别低于其他的运算符,所以对 该运算符往往最后读取。它的作用是将一个表达式的值赋给一个(左值)变量,左值必须 能够被修改,不能是常量。如 while(i=10)……此表达式的作用是将右值“10”赋给左值 i, 每次判断 i 的值都为 10,所以表达式的值为非 0,即判定条件为真,导致程序进入死循环。
第 3 章 “各种”趣味整数
整数通常是程序设计语言的一种基础形态,例如 Java 及 C 编程语言的 int 类型。整数 问题是实际应用中遇到的一类问题。整型数据从所占内存大小可分为基本整型(int)、长 整型(long int)和短整型(short int),根据数据满足的某些性质又可将其分为“完全数”、 “水仙花数”、“亲密数”等。整数问题中经常用到的是对数据的拆分、组合,初学者一定要 从实例中总结方法并掌握。本章主要通过对各类整数问题的算法进行讲解,以培养读者的 编程思维方式与编程技巧。本章主要内容如下:
4.求某给定数的位数
求一个数的位数可以借助最高位的权值来计算,对于十进制来说,个位的权值为 100, 十位的权值为 101,百位的权值为 102 ,……,一个存储三位数的变量 n=123,每次除以 10,将得到的值再赋给 n 直到 n 的值为 0,最多可以除 3 次;若变量 n 中存储的是四位数, 用同样的方法去除以 10,最多可以除 4 次。可以发现,直到变量变为 0,除以 10 的次数即 为当前给定数的位数。程序如下:
有趣的c语言代码例子

有趣的c语言代码例子
1.猜数字游戏:编写程序生成一个介于1到100之间的随机数,用户输入猜测的数字直到猜对为止,程序会给出猜测数字相对于答案的大小关系提示(例如“猜测数字太大”或“猜测数字太小”)。
2. 打地鼠游戏:在屏幕上生成随机的地鼠图案,用户用鼠标点击击打地鼠以获得分数,随着时间的推移地鼠速度逐渐加快。
3. 贪吃蛇游戏:编写程序生成一个贪吃蛇,蛇头可以用键盘控制移动,当蛇吃到食物时身体长度增加,当蛇头碰到墙壁或自己的身体时游戏结束。
4. 数独游戏:生成一个数独谜题,用户通过键盘输入数字来填充空白格子,当谜题填写完整且符合数独规则时游戏结束。
5. 神经网络:使用C语言实现一个简单的神经网络,可以用来识别手写数字或其他模式识别任务。
6. 数据结构:实现一个栈或队列数据结构,可以用来解决各种实际问题。
7. 图像处理:使用C语言读取图像文件并进行简单的处理,例如灰度化、边缘检测或图像滤波等。
8. 加密解密:实现一个简单的加密解密算法,例如Caesar密码或RSA加密算法。
9. 排序算法:实现常见的排序算法,例如冒泡排序、插入排序或快速排序等。
10. 计算机模拟:使用C语言模拟各种实际问题,例如天气预报、
股票交易或人口统计等。
C语言趣味程序设计——题目百例

Contest - 2011级C语言课程大作业Start Time: 2012-02-19 16:25:00 End Time: 2012-03-01 22:00:00 Current Time: 2012-2-23 15:51:18 Status:Running Public写在最前:本文档中的题目;在不不同的编译器中可能会有提示错误,呵呵,小小的动动手改下变量的定义就可以运行了………………..由于能力不足..有题目未解决的…或者有错误的我会…认真听取大家的..意见的….呵呵……..有一两个….偷了下懒哦………提供原题目还有本人自己的解答的源代码。
感谢大家的。
建议…………….问题A: 趣味程序设计_狼追兔子时间限制: 1 Sec 内存限制: 128 MB提交: 341 解决: 63[提交][状态][讨论版]题目描述一只兔子躲进了n个环形分布的洞的某一个中。
狼在第一个洞没有找到兔子,就隔一个洞,到第三个洞去找;也没有找到,就隔两个洞,到第六个洞去找。
以后每次多一个洞去找兔子……这样下去,如果一直找不到兔子,请问兔子可能在哪个洞中?输入有多组测试数据,读取到文件结尾符为止。
每组测试数据输入n(2≤n≤100),即洞穴个数。
输入到文件结尾符为止。
输出兔子可能藏匿的洞。
如果不止一个,按从小到大的顺序输出。
如果不存在,输出空行。
样例输入10815样例输出2 4 7 92 4 5 7 8 9 11 12 14提示用一个数组a[10],对应的元素a[0],a[1],a[2]……a[9]对应表示10个洞,初值均置1。
通过一个循环用“穷举法”找兔子,第n次查找对应第(n-1)%10个洞,如果在第(n-1)%10个洞中没有找到兔子,因此将数组元素a[(n-1)%10]置0值。
循环完成后,检查a数组各元素(各个洞)的值,若其值仍为1,则兔子可能藏身该洞中。
#include<stdio.h>#include<string.h>int ok[110];int main(){int n,s,i,find;while(scanf("%d",&n)!=EOF){memset(ok,0,sizeof(ok));for(i=1;i<=200;i++)if(!ok[find=(i*(i+1)/2)%n])if(find==0)ok[n]=1;elseok[find]=1;for(s=0,i=1;i<=n;i++)s+=ok[i];for(i=1,find=0;i<=n;i++)if(!ok[i]){if(find!=(n-s-1)){printf("%d ",i);find++;}elseprintf("%d",i);}printf("\n");}return 0;}问题B: 趣味程序设计_巧夺偶数时间限制: 1 Sec 内存限制: 128 MB提交: 174 解决: 73[提交][状态][讨论版]题目描述桌子上有25颗棋子。
c语言有趣的代码

c语言有趣的代码C语言是一种强大的编程语言,是许多程序员都必须要掌握的语言之一。
对于那些想要深入学习和掌握C语言的人来说,掌握一些有趣的代码可以是很有帮助的。
本文将介绍一些有趣的C语言代码,这些代码涉及到各种程序设计的领域,从简单的算术操作到复杂的图形和游戏。
1. 打印正弦函数要在C语言中打印正弦函数可以使用数学库函数sin()。
以下是一个简单示例,它将打印出正弦函数的值:#include <stdio.h> #include <math.h>int main() { double angle; double result;// Loop through the angle 0 to 360 degrees, in increments of 10 for (angle = 0.0; angle <= 360.0; angle += 10.0) { result =sin(angle * M_PI / 180.0); // Convert angle to radiansprintf("sin(%f) = %f\n", angle, result); }return 0; }在这个示例中,我们循环从0°到360°,每次以10°的步长递增,并使用sin()函数计算相应角度的正弦。
我们将角度从度数转换为弧度以便计算,然后打印出结果。
2. 凯撒密码凯撒密码是一种简单的置换密码,它将明文中的每个字母替换为一个固定的、用于加密的字母。
这个加密算法可以使用C语言非常容易地实现。
以下是一个示例,它将使用凯撒密码加密输入的字符串:#include <stdio.h>int main() { char str[100]; int key;printf("Enter a string to encrypt: ");gets(str);printf("Enter a key: "); scanf("%d",&key);for (int i = 0; str[i] != '\0'; i++){ if (str[i] >= 'a' && str[i] <= 'z') str[i] = (str[i] - 'a' + key) % 26 + 'a';else if (str[i] >= 'A' && str[i] <= 'Z')str[i] = (str[i] - 'A' + key) % 26 + 'A'; }printf("Encrypted string: %s\n", str);return 0; }在这个示例中,我们首先要求用户提供要加密的字符串和一个密钥。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
怎么样,是不是有了玩游戏的感觉了?不过 这个程序没有什么目的,也没有什么判断胜负的 条件。下面我们就利用这个能控制它移动的笑脸
来做一个更有趣的游戏吧!
游戏一:在 迷宫 中探索
小时侯,我常在一些小人书和杂志上看见一些迷宫的游戏, 非常喜欢玩,还常到一些书上找迷宫玩呢。好的,现在我们 用C语言来编个迷宫的游戏,重温一下童年的乐趣。
clrscr();/*清屏函数*/ printf("Hello, world!\n\n"); printf(“%c”,2); /*在屏幕上画一个笑脸,
笑脸的ASCII码是2 */
getch();/*接受按键,按任意键结束这个程序*/ return 0; }
运动 心动的开始——一个
中的笑脸
大家小时侯喜欢看动画片吗 ?
if (map[y][x] == '#') {
DrawWall(x, y); } } }
}
人不能穿过墙壁!
在判断按键时,如果玩家按的是方向键,我们还要先判断前 面是不是有“墙壁”,如果有的话,就不能往前移动了。好
的,我们在判断按键的switch语句的各个分支加上了判断
语句,如下: case UP:
大家一定玩过“搬运工”的游戏吧!这 是在电脑和电子字典上较流行的益智游 戏,让我们动手做一个属于自己的“搬 运工”吧!
游戏地图
程序依然用数组map来 保存地图,数组元素如 果为空格则表示什么也 没有,‘b’表示箱子, ‘#’表示墙壁,‘*’ 表示目的地,‘i’表示箱 子在目的地。我们以后 每推一下箱子,不但要 改变屏幕的显示,也要 改变map相应元素的值。
2、然后我们让物体按其速度运动:
man.x += man.xv;/*水平方向按x轴的速度运动*/
man.y += man.yv;/*垂直方向按y轴的速度运动*/
3、最后打印出这个笑脸:
gotoxy(man.x, man.y);
printf(“%c\b”, 2); /*输出ASCII码值为2的“笑脸”字符*/
char map[10][10] =
{
"
",
" ####",
" ### @#",
" # b #",
" ## # ###",
" # # # *#",
" # # b *#",
"# b
*#",
" ########",
"
"
};
游戏主循环
接受一个方 向键后
空地或目 的地?
直接移动
判断人前面 一格的状态
墙壁? 不可移动
struct move_point {
int x, y;/*该点的位置,包括x坐标和y坐标*/ int xv, yv;/*该点在x轴、y轴的速度*/ };
1、擦去物体原来的轨迹:
gotoxy(man.x, man.y);/*把光标移到指定的坐标*/
printf(“ “);/*输出一个空格,把先前的字符擦去*/
推子或目 的地上的 箱子?
继续判断箱 子的前面一 格的状态
程序还有一个重要的功能就是判断胜负。 数组Des用来记录全部目的地的坐标,我 们每执行一步操作后,程序就要通过Des 数组判断这些目的地上是否都有箱子了。
for (i=0, count=0; des[i].x != -1; ++i) /*清空count*/ {
接受按键我们用了bioskey函数, 并且用宏定义了一些键盘码,如下:
#define ESC 0x011b #define UP 0x4800 #define DOWN 0x5000 #define LEFT 0x4b00 #define RIGHT 0x4d00
让我们来看游戏的主循环:
接受按键
ESC键?
标等于目的地的坐标*/ {
gotoxy(35, 3); printf(“Ok! You win!”); /*输出胜利信息*/ …./*执行退出前的其他操作。*/ }
OK!这个“迷宫”的 游戏我们已经编好了! 下面,我们编一个更 好玩的游戏——推箱 子!
游 戏 二 : 聪 明 的
“ 搬 运 工 ”
… break; /*让物体向上运动,并退出switch*/ case DOWN: /*如果按的是向下键*/
… break; /*让物体向下运动,并退出switch*/ case LEFT: /*向左键*/
… break;;/*向左运动*/ case RIGHT: /*向右键*/
… break;/*向右运动*/ default:
好的,现在我们用一个二维数组map定义了一个 非常酷的地图。如下:
char map[10][20] =
{
"####################",
"# #
#",
"# ######### # # #",
"# ####
#
###",
"# #
###
# ##",
"# # #### # # # #",
"# #
的多 这媒 头体 ,电 梦脑 境 在
——
当计算机技术给游戏提供了强有力的支持后,一个 陌生而又似曾相识的新奇世界展示在人们面前。这里有 逝去的童年梦想,有心头压抑已久的情感;有疯狂、神 秘,也有脑力和技巧的挑战;有轻松获得实实在在的知 识,也有用“虚拟”成就一个别样的人生。这不是一个 神奇的世界吗?
退出游戏
接受按键
判断按键
上下左右键? 执行相关操作
无效按键?
忽略处理
While (key != ESC) {
while (bioskey(1) == 0);/*等待按键*/ key = bioskey(0);/*把接收的按键的键盘码赋给变量key*/
switch (key) /*对变量key的值进行判断*/ { case UP: /*如果按的是向上键*/
下面,我们就用编游戏来学习C语言吧!^_^
总是从 开始。
学习编程的第一个程序,一般就是打
印一个亲切的词语——“Hello, world!”。让我们来看看这个最简单的C 程序:
#incolude <stdio.h> /*把输入输出函数的头文件包含进来*/ int main()
{ printf(“Hello, world!”);/*在屏幕上输出字符串“Hello, world!”*/ return 0;/*退出main函数,并返回0*/
是啊,动画片那么有趣,谁不喜欢呢?
那么我请问大家,动画和图片的最
? 大区别是什么
没有错,动画之所以有趣,是 因为它是会动的,对不对?好的,现 在我们就让屏幕显示一个会自己移动 的笑脸。
运动的原理是,先擦去物体先前 的轨迹,让物体按其速度移动一段距 离,再画出该物体。让我们看到以下 代码:
程序开头,我们定义了一个在屏幕中运动 的点的结构类型:
趣味程序导学C语言
你玩过电脑游戏吗? 你喜欢电脑游戏吗? 电脑游戏是你生活中的一部分吗?
有的游戏改变过人的一生。。。
小时候,
游戏是 一台黑白的 电视机—— 现实在手柄 的这头,梦 境在手柄的 那头。
长大后,
游戏是一枚小小的铜币——现实 在摇杆的这头,梦境在摇杆的那头。
……
鼠现 游 现 标实 戏 在 的在 是 啊 那鼠 一 , 头标 台
C语言——优秀的计算机语言
C语言对于计算机科学来说是一种非常重要的语言,也是最受欢迎 的语言之一。它具有功能强大、适用范围广、运算符简洁明了等优点。 很多系统软件就是C语言开发的,比如UNIX和我们耳熟能详的Windows 系统。现在要开发好的应用软件,离不开“C语言家族”(包括:VC++、 VC#、C++ build等)。有人说:初学的程序员用VB、聪明的程序员用 delphi、而真正的程序员用VC。从这句话也可以看出C语言的重要性。
集思广益
好的,编游戏就这么简单……呵呵.
## #
#",
"# ##### # ## #
#",
"#
#
#",
"####################"
};
接着,我们用DrawMap函数把这个地图在 屏幕上画出来。
void DrawMap() {
int x = 0, y = 0; for (; y < 10; ++y) {
for (x=0; x < 20; ++x) {
让将要出界的物体“弹”回 出。
运动后还要判断物体是否出界,如果出了 界,就令物体反弹,即让它下一刻的速度等于 现在的速度的相反数。
好的,让我们看以下代码:
if (man.x >= 80 || man.x <= 0) {
man.xv = -man.xv; } if (man.y >= 25 || man.y <= 0) {
}
我们发现几个值得改进的地方,1、程序 的运行结果一闪而过。2、每执行这个程 序一次都能看见上次运行留下的字符。3、 我们还希望屏幕输出一个笑脸来欢迎我 们。
改进后的程序如下:
#include <stdio.h> #include <conio.h> /*使用了clrscr和getch函数*/
int main() {
if (map[man.y - 1][man.x] == ‘#’) break;/*如果人前面是墙壁,就不执行下去*/