一个“歼灭敌机”的小游戏,DEVc++编译通过:
#include <stdioh>
#include <conioh>
#include <stdlibh>
#include <windowsh>
#include <timeh>
#define zlx 10 //增量坐标(x)让游戏框不靠边
#define zly 3 //增量坐标(y)让游戏框不靠边
#define W 26 //游戏框的宽度
#define H 24 //游戏框的高度
int jiem[22][22]={0}, wj=10; //界面数组, 我机位置(初值为10)
int speed=4,density=30, score=0,death=0; //敌机速度, 敌机密度, 玩家成绩,死亡次数
int m=0,n=0; // m,n是控制敌机的变量
void gtxy (int x, int y) //控制光标位置的函数
{ COORD pos;
posX = x; posY = y;
SetConsoleCursorPosition ( GetStdHandle (STD_OUTPUT_HANDLE), pos );
}
void Color(int a) //设定颜色的函数(a应为1-15)
{ SetConsoleTextAttribute( GetStdHandle(STD_OUTPUT_HANDLE), a ); }
void yinc(int x=1,int y=0) //隐藏光标的函数
{ CONSOLE_CURSOR_INFO gb={x,y}; //y设为0即隐藏
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &gb);
}
void csh( ) //初始化函数
{ int i;
Color(7);
gtxy(zlx,zly); printf("╔"); gtxy(zlx+W-2,zly); printf("╗"); //左上角和右上角的框角
gtxy(zlx,zly+H-1); printf("╚"); gtxy(zlx+W-2,zly+H-1); printf("╝"); //下边两框角
for(i=2;i<W-2;i+=2) {gtxy(zlx+i,zly); printf("═"); } //打印上横框
for(i=2;i<W-2;i+=2) {gtxy(zlx+i,zly+H-1); printf("═"); } //打印下横框
for(i=1;i<H-1;i++) { gtxy(zlx,zly+i); printf("║"); } //打印左竖框
for(i=1;i<H-1;i++) {gtxy(zlx+W-2,zly+i); printf("║"); } //打印右竖框
Color(14);gtxy(19,2); printf("歼灭敌机"); Color(10);
gtxy(37,5); printf("设置:Esc ");
gtxy(37,7); printf("发射:↑ ");
gtxy(37,9); printf("控制:← → ");
gtxy(37,11);printf("得分:%d",score);
gtxy(37,13); printf("死亡:%d",death);
yinc(1,0);
}
void qcjm( ) //清除界面函数
{int i,j;
for(i=0;i<H-2;i++)
for(j=0;j<W-4;j++){gtxy(zlx+2+j,zly+1+i);printf(" ");}
}
void feiji( ) //飞机移动函数
{int i,j;
for(i=21;i>=0;i--) //从底行往上是为了避免敌机直接冲出数组
for(j=0;j<22;j++)
{if(i==21&&jiem[i][j]==3) jiem[i][j]=0; //底行赋值0 以免越界
if(jiem[i][j]==3) jiem[i][j]=0, jiem[i+1][j]=3;
}
if(jiem[20][wj]==3&&jiem[21][wj]==1) death++;
}
void zidan( ) //子弹移动函数
{ int i,j;
for(i=0;i<22;i++)
for(j=0;j<22;j++)
{if(i==0&&jiem[i][j]==2) jiem[i][j]=0;
if(jiem[i][j]==2) { if(jiem[i-1][j]==3) score+=100,printf("\7");
jiem[i][j]=0,jiem[i-1][j]=2; }
}
}
void print( ) //输出界面函数
{int i,j;
qcjm( );
for(i=0;i<22;i++)
for(j=0;j<22;j++)
{ gtxy(12+j,4+i);
if(jiem[i][j]==3) {Color(13);printf("□");}
if(jiem[i][j]==2) {Color(10);printf("");}
if(jiem[i][j]==1) {Color(10);printf("■");}
}
gtxy(37,11); Color(10);printf("得分:%d",score);
gtxy(37,13); printf("死亡:%d",death);
}
void setting( ) //游戏设置函数
{ qcjm( );
gtxy(12,4);printf("选择敌机速度:");
gtxy(12,5);printf(" 1快 2中 3慢>>");
switch(getche( ))
{case '1': speed=2; break;
case '2': speed=4; break;
case '3': speed=5; break;
default: gtxy(12,6);printf(" 错误!默认值");
}
gtxy(12,7);printf("选择敌机密度:");
gtxy(12,8);printf(" 1大 2中 3小>>");
switch(getche( ))
{case '1': density=20; break;
case '2': density=30; break;
case '3': density=40; break;
default: gtxy(12,9);printf(" 错误!默认值");
}
for(int i=0;i<22;i++)
for(int j=0;j<22;j++)jiem[i][j]=0;
jiem[21][wj=10]=1; jiem[0][5]=3;
gtxy(12,10);printf(" 按任意键保存");
getch( );
qcjm( );
}
void run( ) //游戏运行函数
{ jiem[21][wj]=1; //值为1代表我机(2则为子弹)
jiem[0][5]=3; //值为3代表敌机
SetConsoleTitle("歼灭敌机"); //设置窗口标题
while(1)
{ if (kbhit( )) //如有键按下,控制我机左右移动、发射或进行设定
{int key;
if((key=getch( ))==224) key=getch( );
switch(key)
{ case 75: if(wj>0) jiem[21][wj]=0,jiem[21][--wj]=1; break;
case 77: if(wj<20) jiem[21][wj]=0,jiem[21][++wj]=1; break;
case 72: jiem[20][wj]=2; break;
case 27: setting( );
}
}
if(++n%density==0) //控制产生敌机的速度
{ n=0;srand((unsigned)time(NULL));
jiem[0][rand( )%20+1]=3;
}
if(++m%speed==0) {feiji( ); m=0;} //控制敌机移动速度(相对子弹而言)
zidan( );
print( );
Sleep(120); //延时120毫秒
}
}
int main( )
{csh( );
run( );
return 0;
}
新手要方便写代码,可以收藏下面几个自编函数:
SetConsoleTitle("俄罗斯方块"); //设置窗口左上角标题栏处出现"俄罗斯方块"5个字
srand( (unsigned) time(NULL) ); //初始化随机数发生器
n= rand( ) % 20; //产生随机数0-19中的一个 如 rand( )%5 就产生0-4中的一个数
SetConsoleTitle( )函数在<windowsh>里, srand( )函数与rand( )函数要配合用,
就是同时要用,在<stdlibh>里。如果 rand( )%10+1 就产生1-10之中的一个数。
Sleep(300); //延时300毫秒(就是程序暂停300毫秒后继续运行)
system("cls"); //清屏(把窗口里的内容全部清除,光标定于(0,0)位置处)
这两个函数都在<windowsh>里。开头4个自编函数 编写如下:
void gtxy (int x, int y) //控制光标位置的函数
{ COORD pos;
posX = x;
posY = y;
SetConsoleCursorPosition ( GetStdHandle (STD_OUTPUT_HANDLE), pos );
}
void Color (int a) //设定颜色的函数
{ SetConsoleTextAttribute ( GetStdHandle ( STD_OUTPUT_HANDLE ),a ); }
void yinc (int x,int y) //隐藏光标的函数
{ CONSOLE_CURSOR_INFO gb={ x , y }; //gb代表光标
SetConsoleCursorInfo ( GetStdHandle(STD_OUTPUT_HANDLE), &gb );
}
void kou(int w,int h) //设置窗口大小的函数
{HANDLE hl=GetStdHandle ( STD_OUTPUT_HANDLE ) ;
COORD size={ w , h };
SetConsoleScreenBufferSize( hl , size );
SMALL_RECT rc={ 0, 0, w, h };
SetConsoleWindowInfo( hl, 1, &rc );
}
最后这个函数,参数w是宽h是高。里边5行中第一行定义了句柄型变量hl,并给它赋值。
第二行定义了坐标型结构体变量size,它的取值决定了缓冲区的大小。第三行就是使用
size的值设置好缓冲区大小。第四行定义了变量rc,它的值决定当前窗口显示的位置与
大小(不得超过缓冲区的大小)。前两个0,0是从缓冲区左上角0列0行位置处开始,后两
个参数可以小于w和h比如 rc={0,0,w-10,h-5}; 最后一行使用rc的值设置好窗口,中间
那个参数要为" 1 "或写“ true ”才有效。
你这个程序输出应该是:
a d
abc def
ghi mno
hi no
首先你定义了一个static类型的结构体变量s1 并对里面的数组c赋值为abc 指针s指向了def这个字符串
然后你又定义了一个static类型的结构体变量s2 并使得指针cp指向了字符串“ghi” 。ss1c数据赋值为jki 。ss1s指向了“mno”字符串。
最后是print(引用下面那个哥们的):第一个printf输出两个字符,s1c[0]是abc的第一个字符。s1s是一个字符指针,取def的第一个字符d
第二个printf输出两个字符串,第一个s1c的串为abc,第二个s1s的串为def
第三个printf输出两个字符串,第一个s2cp的串为ghi,第二个串s2ss1s为mno
第四个printf输出连个字符串,第一个先给s2指针加1,然后取++s2cp指向的串为hi。第二个++s2ss1s,指针先加1,然后取所指向的串no
哥们你最后一个print写错了。。应该是printf("%s\t%s\n",++s2cp,++s2ss1s);
1、C程序:C语言程序结构有三种:顺序结构,循环结构,选择结构;
2、main函数:每个C语言程序中main函数是有且只有一个。读程序都要从main入口,然后从最上面顺序往下读。
3、存储形式:计算机的数据在电脑中是以二进制的形式保存。最低的存储单元是bit,位是由为0或者1构成。byte是指字节,一个字节=八个位。数据存放的位置就是它的地址;
4、注释:是对程序的说明,可出现在程序中任意合适的地方,注释从“/”开始到最近一个“/”结束,其间任何内容都不会被计算机执行,注释不可以嵌套。
5、书写格式:每条语句的后面必须有一个分号,分号是语句的一部分。一行内可写多条语句,一个语句可写在多行上;
6、标识符:合法的用户标识符考查:合法的要求是由字母,数字,下划线组成。有其它元素就错了。并且第一个必须为字母或则是下划线。第一个为数字就错了。
7、实型数据:实型数据的合法形式:小数形式和指数形式。掌握判定指数形式合法性。2333e-1就是合法的,且数据是2333×10-1。考试口诀:e前e后必有数,e后必为整数;
8、字符。字符数据的合法形式,字符型和整数是近亲;
9、整型数据:整型一般是两个字节,字符型是一个字节,双精度一般是4个字节;
10、转义字符:在程序中inta=0x6d,是把一个十六进制的数给变量a,注意这里的0x必须存在。
程序中用了四个变量:Remainder用来存储被除数, Dividend 用来存储除数,Count用来存储累减次数也就是商数,Quotient用来存储被除数问题答案。代码注释见附图。这个程序段不能能正确完成上面描述的算法,致命性的错误有一个,可能发生的错误一个。第2句是多余的,也是致命的,照此运行结果一定是1可能发生的错误是,循环类型选择不对,该程序选择了直到型循环,先执行后判断。当被除数小于除数时,就会发生错误。修改方法是,去掉第2句,把直到型循环改为先判断后执行的循环。代码注释附后:
另外还应该假如参数、赋值及输出打印等代码。
#include <stdioh>
int main() {
int n = 8;
int factorial = 1;
for (int i = 1; i <= n; i++) {
factorial = i;
}
printf("8! = %d\n", factorial);
return 0;
}
在这个示例中,我们使用一个for循环来计算8的阶乘。在循环中,我们从1到8迭代,将每个数字乘以当前的阶乘,最终得到8的阶乘。在计算阶乘之前,我们定义了一个变量factorial,并将其初始化为1。在循环结束后,我们将计算出的阶乘存储在变量factorial中,并将其打印到控制台中。
源程序。
c语言是高级语言,写出来的程序是源程序,需用相应的编译程序将其翻译成机器语言的目标程序,再把目标程序和各种标准库函数连接装配成一个完整的可执行机器语言,然后才能执行。C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛。源程序(sourcecode)是指未编译的按照一定的程序设计语言规范书写的文本文件。源代码(源程序),是指一系列人类可读的计算机语言指令。
提起星座运势c语言,大家都知道,有人问c语言switch语句编写星座的例题,另外,还有人想问C语言编的星座程序,你知道这是怎么回事?其实星座运势查询每日更新,下面就一起来看看c语言switch语句编写星座的例题,希望能够帮助到大家!
星座运势c语言
1、星座运势c语言:c语言switch语句编写星座的例题
首先,你的程序有问题!printf后面没有那个冒号。
#include
main()intscanf(“%d”,&k);
switch(k)case
1:printf(“%d\n”,k++);
case
2:printf(“%d\n”,k++);
case
3:printf(“%d\n”,k++);
case
4:printf(“%d\n”,k++);
break;
default:printf(“FULL!\n”);return}
/////////////输入
进入case
1,输出1
k变成2,进入case
2,输出2
k变成3,进入case
3,输出3
k变成4,进入case
4,输出4
遇到break,退出switch。
输入3过程是一样的,只是从case
3开始,输出:
2、星座运势c语言:C语言编的星座程序
没什么错误啊。。。
//if((pbirth>&&pbirth=&&pbirth&&pbirth=&&pbirth<=))
你把那句注释了。当然就有错误了。
3、星座运势c语言:星座运势查询每日更新
白羊座运势概述
,工作上,会处于“这山望着那山高”的状态,既对现在的工作不满意,但是又无法找到更好的工作;感情上,彼此的爱都很稳定,可以步入婚姻了;健康上,会有高血压的情况;财运上,上升。
金牛座运势概述
,工作上,对于老板吩咐下来的事情,好好做就好了,不要问太多为什么;感情上,可以和之心朋友聊聊自己感情问题,诉诉苦,不会那么郁闷;健康上,容易出现失眠现象;财运上,一般。
双子座运势概述
,工作上,所谓的职场成功学并不适合所有人,你一定要找到自己的长处而努力发挥;感情上,容易在聚会上认识到心动的人,可以展开攻势;健康上,不要从事激烈运动,很容易拉伤;财运上,下降。
巨蟹座运势概述
,工作上,会有贵人相助,但是前提是你要有一颗乐于助人的心;感情上,不要将工作上的不顺心发泄到恋人的身上,要多多考虑对方的感受;健康上,略有疲惫之感;财运上,下降。
狮子座运势概述
,工作上,在签署各项协议的时候,一定要看好每一项条约,万万不可掉以轻心;感情上,可以带恋人好好认识一下自己的朋友,对恋情的巩固很有好处;健康上,多喝凉茶;财运上,下降。
处女座运势概述
,工作上,工作的时候就专心工作,不要一心二用,会严重影响工作效率;感情上,会出现同时爱上两个人的现象,一定要想清楚,到底谁才是自己真正爱的人;健康上,小心皮肤病;财运上,多学习理财知识。
天秤座运势概述
,工作上,不适合偷懒的,很容易被老板发现,被训一顿的可能性很大;感情上,虽然有恋人了,可是还会遇到心动的人;健康上,精神状态非常不错;财运上,适合小规模投资。
天蝎座运势概述
星座运势查询每日更新,工作上,许多项目都按照预想中进行,只不过你需要更多人的提携才有可能升职;感情上,彼此要共同走过的路还很长,需要承受的压力也很大;健康上,注意多休息;财运上,上升。
射手座运势概述
,工作上,人际关系面临危机,需要你在上面花更多的心思,可以考虑适当送送礼;感情上,虽然已经是“老夫老妻”了,但适当地耍一下小浪漫还是必须的;健康上,平稳;财运上,下降。
摩羯座运势概述
,工作上,在新团队中站稳脚跟并开始得到重用,但是你要找好属于自己的位置;感情上,会遇到前任纠缠的现象,一定要好自己的立场;健康上,注意饮食卫生;财运上,下降。
水瓶座运势概述
,工作上,不要过分依赖别人的帮助,这样你永远都不能自己处理事情;感情上,容易有误会发生,当天就解释清楚,拖了问题更多;健康上,身体有轻微的反应;财运上,上升。
双鱼座运势概述
,在工作上,对工作的热情降低,你需要寻找新的挑战;感情上,适合喜结良缘的,是办得闹闹的,毕竟相爱一场很不容易;健康上,身体状况走低;财运上,进入积累期。
了解更多星座运势查询请进入:http://wwwnet/yunshi/
以上就是与c语言switch语句编写星座的例题相关内容,是关于c语言switch语句编写星座的例题的分享。看完星座运势c语言后,希望这对大家有所帮助!
C语言经典程序8个必背
1、C语言必背8个经典程序第一个乘法表
用C语言输出99乘法口诀。共9行9列,i控制行,j控制列。
2、C语言必背8个经典程序之4x4数组
下面程序的功能是将一个4x4的数组进行逆时针旋转90度后输出,要求原始数组的数据随机输入,新数组以4行4列的方式输出,请在空白处完善程序。
3、C语言必背8个经典程序的相关古典问题
有一对兔子,从出生后第3个月起每个月都生一对免子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少兔子的规律为数列1,1,2,3,5,8,13,21
4、C语言必背8个经典程序之素数
判断101-200之间有多少个素数,并输出所有素数及素数的个数。程序分析:判断素数的方法: 用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数反之是素数。
5、C语言必背8个经典程序之完数相关代码
一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3编程找出1000以内的所有完数。
6、C语言必背8个经典程序之三角形打印
编程打印直角杨辉三角形。
7、C语言必背8个经典程序之反向输出
完善程序,实现将输入的字符串反序输出,如输入windows 输出swodniw。
8、第九个C语言必背8个经典程序
下面程序的功能是从字符数组s中删除存放在c中的字符。
欢迎分享,转载请注明来源:浪漫分享网
评论列表(0条)