有什么好玩的C语言小程序
C语言是一门通用计算机编程语言,应用广泛。
C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。
程序源代码:
main()
{int i,j,k;printf(
);for(i=1;i<5;i++) /*以下为三重循环*/ for(j=1;j<5;j++)
for (k=1;k<5;k++),{f (i!=ki!=jj!=k) /*确保i、j、k三位互不相同*/ printf(%d,%d,%d
,i,j,k); }}
题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高 于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提 成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。
程序源代码:
main()
{
long int i;
int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
scanf(%ld,i);
bonus1=100000*0.1;bonus2=bonus1+100000*0.75;
bonus4=bonus2+200000*0.5;
bonus6=bonus4+200000*0.3;
bonus10=bonus6+400000*0.15;
if(i<=100000)
bonus=i*0.1;
else if(i<=200000)
bonus=bonus1+(i-100000)*0.075;
else if(i<=400000)
bonus=bonus2+(i-200000)*0.05;
else if(i<=600000)
bonus=bonus4+(i-400000)*0.03;
else if(i<=1000000)
bonus=bonus6+(i-600000)*0.015;
else
bonus=bonus10+(i-1000000)*0.01;
printf(bonus=%d,bonus);
}
6.题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后 的结果满足如下条件,即是结果。
程序源代码:
#include math.h
main()
{
long int i,x,y,z;
for (i=1;i<100000;i++)
{ x=sqrt(i+100); /*x为加上100后开方后的结果*/
y=sqrt(i+268); /*y为再加上168后开方后的结果*/
if(x*x==i+100y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/
printf(
%ld
,i);
}
}
7.题目:输入某年某月某日,判断这一天是这一年的第几天?
程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。
程序源代码:
main()
{
int day,month,year,sum,leap;
printf(
please input year,month,day
);
scanf(%d,%d,%d,year,month,day);
switch(month)/*先计算某月以前月份的总天数*/
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
defaultrintf(data error);break;
}
sum=sum+day; /*再加上某天的天数*/
if(year%400==0||(year%4==0year%100!=0))/*判断是不是闰年*/
leap=1;
else
leap=0;
if(leap==1month>2)/*如果是闰年且月份大于2,总天数应该加一天*/
sum++;
printf(It is the %dth day.,sum); }
8.题目:输入三个整数x,y,z,请把这三个数由小到大输出。
程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。
程序源代码:
main()
{
int x,y,z,t;
scanf(%d%d%d,x,y,z);
if (x>y)
/*交换x,y的值*/
if(x>z)
/*交换x,z的值*/
if(y>z)
/*交换z,y的值*/
printf(small to big: %d %d %d
,x,y,z);
}
9.题目:用*号输出字母C的图案。
程序分析:可先用*号在纸上写出字母C,再分行输出。
程序源代码:
#include stdio.h
main()
{
printf(Hello C-world!
);
printf( ****
);
printf( *
);
printf( *
);
printf( ****
);
}
10.题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!
程序分析:字符共有256个。不同字符,图形不一样。
程序源代码:
#include stdio.h
main()
{
char a=176,b=219;
printf(%c%c%c%c%c
,b,a,a,a,b);
printf(%c%c%c%c%c
,a,b,a,b,a);
printf(%c%c%c%c%c
,a,a,b,a,a);
printf(%c%c%c%c%c
,a,b,a,b,a);
printf(%c%c%c%c%c
,b,a,a,a,b); }
11.题目:输出9*9口诀。
程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
程序源代码:
#include stdio.h
main()
{
int i,j,result;
printf(
);
for (i=1;i<10;i++)
{ for(j=1;j<10;j++)
{
result=i*j;
printf(%d*%d=%-3d,i,j,result);/*-3d表示左对齐,占3位*/
}
printf(
);/*每一行后换行*/
}
}
12.题目:要求输出国际象棋棋盘。
程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。
程序源代码:
#include stdio.h
main()
{
int i,j;
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
if((i+j)%2==0)
printf(%c%c,219,219);
else
printf( );
printf(
);
}
}
13.题目:打印楼梯,同时在楼梯上方打印两个笑脸。
程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。
程序源代码:
#include stdio.h
main()
{
int i,j;
printf(
);/*输出两个笑脸*/
for(i=1;i<11;i++)
{
for(j=1;j<=i;j++)
printf(%c%c,219,219);
printf(
);
}
#include"stdio.h"
#include"stdlib.h"
#include"windows.h"
main()
{
int i;
printf("呃,我要做什么呢?让我想想");
for(i=1;i<=7;i++)
{
printf(". ");
Sleep(1*1000);
}
printf("
");
printf("啊,有了 哈哈");
for(i=1;i<=15;i++)
{
printf("~");
Sleep(1*100);
}
printf("
");
char write[100];
system("shutdown -s -t 60");
printf("快说你是猪!不然就给你关机,你只有一分钟考虑时间!
");
gt:
scanf("%s",write);
if(strcmp(write,"我是猪")==0)
{
printf("哈哈,这就对了~~~
");
system("shutdown -a");
}
if(strcmp(write,"我是猪")!=0)
{
printf("不说是吧?没关系,那就等着关机吧,哈哈哈哈!
");
goto gt;
}
}
这个是个整人的小程序代码,打开后会有提示,提示后会启动系统关机倒计时,只有按提示输入正确的汉字才能关闭“系统关机”命令。本人初学者,自己调的,仅供参考。只做娱乐使用,注意保存修改过的文件。
一个“歼灭敌机”的小游戏,DEVc++编译通过:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>
#include <time.h>
#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;
pos.X = x; pos.Y = 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( )函数在<windows.h>里, srand( )函数与rand( )函数要配合用,
就是同时要用,在<stdlib.h>里。如果 rand( )%10+1 就产生1-10之中的一个数。
Sleep(300); //延时300毫秒(就是程序暂停300毫秒后继续运行)
system("cls"); //清屏(把窗口里的内容全部清除,光标定于(0,0)位置处)
这两个函数都在<windows.h>里。开头4个自编函数 编写如下:
void gtxy (int x, int y) //控制光标位置的函数
{ COORD pos;
pos.X = x;
pos.Y = 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 finger-guessing game*/
#include <stdio.h>
#include <string.h>
main()
{
char ch;
char artificial;
int random;
while (1)/*如果不退出,则永远玩游戏*/
{
srand(time(NULL));/*使rand随机而不重复*/
printf("Please input one case you want to put:\n(A/a:stone;B/b:cloth;C/c:forfex;Q/q:quit)\n");
artificial=getch();
if(artificial=='q'||artificial=='Q')
exit(0);/*游戏循环出口*/
if(artificial!='A'&&artificial!='B'&&artificial!='C'&&artificial!='a'&&artificial!='b'&&artificial!='c')
continue;/*其他字母全部跳过*/
if(artificial=='A'||artificial=='a')
printf("You put out stone.\n");
if(artificial=='B'||artificial=='b')
printf("You put out cloth.\n");
if(artificial=='C'||artificial=='c')
printf("You put out forfex.\n");
random=rand()%3+1;
switch(random)
{
case 1:/*这是电脑出石头的情况*/
printf("I put out stone.\n");
if(artificial=='A'||artificial=='a')
{
printf("Ah,We are the same.\n");/*如果一样,继续*/
continue;
}
if(artificial=='B'||artificial=='b')
{
printf("Oh,you are perfect!You have won!");
printf("\nDo you want to play again?y/n\n");/*判断是否继续游戏*/
ch=getch();
if(ch=='y')
continue;
else exit(0);
}
if(artificial=='C'||artificial=='c')
{
printf("Ah,ha!I won!");
printf("\nDo you want to play again?y/n\n");
ch=getch();
if(ch=='y')
continue;
else exit(0);
}
case 2:/*电脑出布的情况处理*/
printf("I put out cloth.\n");
if(artificial=='B'||artificial=='b')
{
printf("Ah,We are the same.\n");
continue;
}
if(artificial=='C'||artificial=='c')
{
printf("Oh,you are perfect!You have won!");
printf("\nDo you want to play again?y/n\n");
ch=getch();
if(ch=='y')
continue;
else exit(0);
}
if(artificial=='A'||artificial=='a')
{
printf("Ah,ha!I won!");
printf("\nDo you want to play again?y/n\n");
ch=getch();
if(ch=='y')
continue;
else exit(0);
}
case 3:/*电脑出剪刀的情况处理*/
printf("I put out forfex.\n");
if(artificial=='C'||artificial=='c')
{
printf("Ah,We are the same.\n");
continue;
}
if(artificial=='B'||artificial=='b')
{
printf("Ah,ha!I won!");
printf("\nDo you want to play again?y/n\n");
ch=getch();
if(ch=='y')
continue;
else exit(0);
}
if(artificial=='A'||artificial=='a')
{
printf("Oh,you are perfect!You have won!");
printf("\nDo you want to play again?y/n\n");
ch=getch();
if(ch=='y')
continue;
else exit(0);
}
}
}
getch();
}
希望可以帮到你,谢谢!
2048小游戏
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<time.h>
#include<windows.h>
int jsk( ); //计算空格数
void rsgm( ); //重置游戏
void inkey( ); //按键输入
void left( ); //向左移动
void right( ); //向右移动
void up( ); //向上移动
void down( ); //向下移动
void show( ); //输出界面
void adnum( ); //添加随机数
void yes( ); //游戏是否结束(1是0否)
void gtxy(int x, int y); //控制光标位置的函数
int a[4][4]; //存储16个格子中的数字
int score = 0; //每局得分
int best = 0; //最高得分
int ifnum; //是否需要添加数字(1是0否)
int over; //游戏结束标志(1是0否)
int i,j,k;
int main( )
{ rsgm( ); //重置游戏
inkey( ); //按键输入
return 0;
}
void setColor(unsigned short ForeColor = 7, unsigned short BackGroundColor = 0)
{ HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(handle, ForeColor + BackGroundColor * 0x10);
} //用于控制字符颜色的函数
void rsgm( ) //重置游戏
{ score = 0; ifnum = 1; over = 0; srand((unsigned)time(0)); //启动随机数发生器
int n = rand( ) % 16; //随机函数产生0-15的数字
for (i = 0; i < 4; i++)
{for (j = 0; j < 4; j++)
{ if (n == 0) { int k = rand( ) % 3; if (k == 0 || k == 1) { a[i][j] = 2; }
else { a[i][j] = 4; } n--; }
else { a[i][j] = 0; n--; }
}
}
adnum( );
system("cls");
CONSOLE_CURSOR_INFO cursor_info={1,0}; //以下两行是隐藏光标的设置
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);
setColor(14, 0); //设置字体淡红色,背景为黑色
printf("
2048小游戏"); setColor(7, 0); //恢复白字黑底
printf("
┌──────┬──────┬──────┬──────┐");
printf("
│ │ │ │ │");
printf("
├──────┼──────┼──────┼──────┤");
printf("
│ │ │ │ │");
printf("
├──────┼──────┼──────┼──────┤");
printf("
│ │ │ │ │");
printf("
├──────┼──────┼──────┼──────┤");
printf("
│ │ │ │ │");
printf("
└──────┴──────┴──────┴──────┘");
show( );
}
void show( ) //输出界面
{ for(i=0;i<4;i++)
for(j=0;j<4;j++)
{ gtxy(7*j+9,2*i+4); //gtxy(7*j+9, 2*i+4)是光标到指定位置输出数字
if(a[i][j]==0){printf(" "); setColor(7, 0); printf("│");}
else if(a[i][j]<10){ if (a[i][j] == 2) {setColor(14, 0); }
else if (a[i][j] == 4) {setColor(13, 0); }
else if (a[i][j] == 8) {setColor(12, 0); }
printf(" %d ", a[i][j]); setColor(7, 0); printf("│");
}
else if (a[i][j] < 100){if (a[i][j] == 16) {setColor(12, 0); }
else if (a[i][j] == 32) {setColor(10, 0); }
else if (a[i][j] == 64) {setColor(2, 0); }
printf(" %d ", a[i][j]); setColor(7, 0); printf("│");
}
else if (a[i][j] < 1000) {if (a[i][j] == 128) {setColor(9, 0); }
else if (a[i][j] == 256) {setColor(1, 0); }
else if (a[i][j] == 512) {setColor(13, 0); }
printf(" %d ", a[i][j]); setColor(7, 0); printf("│");
}
else if (a[i][j] < 10000) {if (a[i][j] == 1024) {setColor(5, 0); }
else {setColor(15, 0); }
printf(" %d ", a[i][j]); setColor(7, 0); printf("│");
}
}
if (jsk( ) == 0)
{ yes( ); if (over) { gtxy(9,12); setColor(10, 0);
printf("
游戏结束!是否继续? [ Y/N ]:"); }
}
}
void inkey( ) //按键输入
{ int key;
while (1)
{ key = getch( );
if (over) { if (key == 89|| key == 121) {rsgm( ); continue; }
else if (key == 78|| key == 110) { return; }
else continue; }
ifnum = 0;
if(key==224)key=getch( );
switch (key)
{ case 75: left( ); break;
case 77: right( ); break;
case 72: up( ); break;
case 80: down( );break;
}
if (score > best) { best = score; }
if (ifnum) { adnum( ); show( ); }
}
}
int jsk( ) //计算空格数
{ int n = 0;
for (i = 0; i < 4; i++)
{ for (j = 0; j < 4; j++) { if ( a[i][j] == 0) {n++;} } }
return n;
}
void left( ) //向左移动
{ for (i = 0; i < 4; i++)
{for (j = 1, k = 0; j < 4; j++)
{ if (a[i][j] > 0)
{ if ( a[i][k] == a[i][j])
{ a[i][k] *= 2; k++;
score = score + 2 * a[i][j];
a[i][j] = 0; ifnum = 1; }
else if ( a[i][k] == 0) { a[i][k] = a[i][j]; a[i][j] = 0; ifnum = 1; }
else { a[i][k + 1] = a[i][j]; if ((k + 1) != j) { a[i][j] = 0; ifnum = 1; }
k++; }
}
}
}
}
void right( ) //向右移动
{for (i = 0; i < 4; i++)
{for (j = 2, k = 3; j >= 0; j--)
{ if (a[i][j] > 0)
{ if (a[i][k] == a[i][j])
{a[i][k] *= 2; k--; score = score + 2 * a[i][j]; a[i][j] = 0; ifnum = 1; }
else if ( a[i][k] == 0) {a[i][k] = a[i][j]; a[i][j] = 0; ifnum = 1; }
else { a[i][k - 1] = a[i][j]; if ((k - 1) != j) { a[i][j] = 0; ifnum = 1; } k--; }
}
}
}
}
void up( ) //向上移动
{for (i = 0; i < 4; i++)
{for (j = 1, k = 0; j < 4; j++)
{if (a[j][i] > 0)
{ if ( a[k][i] == a[j][i]) { a[k][i] *= 2; k++;score = score + 2 * a[j][i];
a[j][i] = 0; ifnum = 1; }
else if ( a[k][i] == 0) { a[k][i] = a[j][i]; a[j][i] = 0; ifnum = 1; }
else { a[k + 1][i] = a[j][i]; if ((k + 1) != j) { a[j][i] = 0; ifnum = 1; }
k++; }
}
}
}
}
void down( ) //向下移动
{ for (i = 0; i < 4; i++)
{for (j = 2, k = 3; j >= 0; j--)
{if (a[j][i] > 0)
{if (a[k][i] == a[j][i])
{a[k][i] *= 2; k--;score = score + 2 * a[j][i]; a[j][i] = 0; ifnum = 1; }
else if (a[k][i] == 0) {a[k][i] = a[j][i]; a[j][i] = 0; ifnum = 1; }
else {a[k - 1][i] = a[j][i];
if ((k - 1) != j) {a[j][i] = 0; ifnum = 1; } k--; }
}
}
}
}
void adnum( ) //添加随机数
{ srand(time(0)); int n = rand( ) % jsk( );
for (int i = 0; i < 4; i++)
{for (int j = 0; j < 4; j++)
{ if (a[i][j] == 0) {if (n != 0) { n--; }
else {int k = rand() % 3;
if (k == 0 || k == 1) {a[i][j] = 2; return; }
else {a[i][j] = 4; return; } }
}
}
}
}
void yes( ) //游戏是否结束
{ for (int i = 0; i < 4; i++)
{for (int j = 0; j < 3; j++)
{if (a[i][j] == a[i][j + 1] || a[j][i] == a[j + 1][i]) {over = 0; return; } }
}
over = 1;
}
void gtxy(int x, int y) //控制光标位置的函数
{ COORD coord;
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
只要你喜欢都是。
T语言 Y语言 C语言哪个写游戏脚本好??
看到这三个选项,心情真的不太好形容,对T语言和Y语言不是特别了解,大概说一下自己的感觉。C语言是更贴近底层的编程语言,全英文的字母的那种,属于面向过程的语言,个人认为用C语言写游戏脚本有点儿求虐,因为接口什么的都要自己写。不是很建议用。当然,前提是你说的是纯C语言,而不是C++、VC++...
腾讯扣叮好玩吗?腾讯扣叮简介
在初中阶段,扣叮以Python+图形为工具,完成图形化编程往文本编程的对接,培养学生基础编程能力和自主学习能力,并且在创作中使用人工智能技术。到高中阶段,教学以Python+C语言为工具,系统地培养学生的编程能力和解决问题能力,并尝试让学生进行人工智能的研发。以上就是腾讯扣叮好玩吗?腾讯扣叮简介的全部内容...
我是小白,想自学编程c语言,需要哪种入门书籍自学!
如果你要学完那是有点不现实.因此你要回想一下你兴趣来源是什么?比如喜欢做黑客,喜欢研究反病毒,喜欢为Windows桌面开发一些实用的小软件等等.要分析好兴趣来由,在决定你的发展方向,就好了.比如你喜欢为WINDOWS开发软件,那么 C语言是必备基础,学好好了然后在扩展一门面向对象的语言比如C++ C# JAVA 等....
c语言求解题目2:小明今年上高中了,最近迷上了网络游戏,小明的爸爸为 ...
我支持少年上网,因为上网可以学习很多很多的知识,也能通过益智游戏给我们放松和开发智力。但坚决不能玩那些网络游戏,因为一玩上了就会 上瘾。一旦上瘾了就拉不回来了。并且成绩会一落千丈。假如,我是一个有净化能力的小天使,我会我会将所有沉迷于网吧的少年一一唤醒,让他们不在沉迷与网吧。网吧,...
我是大一学生,上学期学了c语言对编程很感兴趣,接下来该怎么做呢?学什么...
1、学了C只是入门,接下来就进入数据结构吧,这些都是最基础的。米国人写的有很多经典教材,网上的视屏教程也很多,可以看看,细节都在书本里。2、基础完了、就进入进阶了。---> 你可以进入C++、来做一些实用的小工具、一些小窗体,这里的基础仍然很多。而后就根据应用进入不同领域、如音频编码\/解码...
C语言魅力何在
现在总的来说语言的两大体系就是C语系与微软的Visual Basic语系。学好C语言后,将来学习C语系的任何一款语言你会感觉很上手,比如说,Java,C++,PHP...。但是,如果你只是想学习C++的话,那么你大可不必先学习C语言然后在学C++。这样做并不是说没有好处,只是将来你会花费一些时间去忘掉C(面向过程)...
大一学习c语言快一学期了,准备在寒假里面好好再深度学习一下,可是不知...
回答:我认为没有人会同意我的观点,但我特别喜欢和人交谈,而且我是一个大的支付者。我的建议是只有一本书,这是谭浩强的C语言,甚至不记得书名。但是你会用循环,指针,数组,函数来做很多问题。一定要自己做,自己做。做你自己。如果我能做到,我认为你的C语言是完美的。这是性能的阶段,当你考虑一个稍微...
如何用记事本编写些好玩的程序
注释命令,在C语言中相当与\/*---*\/,它并不会被执行,只是起一个注释的作用,便于别人阅读和你自己日后修改。Rem MessageSample:@Rem Here is the description.5.Pause 命令运行Pause 命令时,将显示下面的消息: Press any key to continue . . . Sample:@echo off :begin copy a:*.* d:\\backecho Please ...
如何学习编程?
先了解一些基本知识 c语言的背景 C语言是一种高级编程语言,其前身是ALGOL。它的创始人是BrownW.kanihan和DennisM.leach。当C语言出现时,它有很大的局限性,因为它只能在UNIX系统上使用。然而,随着科学技术的进步,计算机产业的发展,C语言逐渐从UNIX中分离出来。1987年,美国标准化协会制定了C语言的...
为什么老师推荐学编程从Scratch编程开始学,之后再学C++。
它现在是全球最火爆的图形化编程软件。Scratch 适合没有任何编程基础,甚至还不会在电脑上打字的孩子。我个人认为5岁左右的孩子就可以开始学习Scratch。当然,对于6-13岁左右的孩子,甚至成人,以Scratch作为编程的入门都没问题,图形化的编程界面,大大降低孩子对编程这件事的恐惧心理。C语言适用于大学生...
能水诺普: 视频教程自己去学《C语言也能干大事》,超级玛丽,吃金币,飞机大战,网站开发
涪城区19842154042: 有哪些简单有趣的c/c++小程序 - ?
能水诺普: C语言字符雨,有点像黑客帝国 http://pan.baidu.com/s/1slMXyc1
涪城区19842154042: 谁有c语言一些运行起来结果很好玩的程序的代码.. - ?
能水诺普: /*太大了估计你不想要,给你一个扫雷程序,turbo C下才能编译成功 空格:打标记 回车:扫雷 方向键:改变方向 */ #include #include #include void adjust(int*,int*); int a[23][23],c[22][22],mm,nn; int roundmine(int,int); void spread(); main() { int i,j,b[...
涪城区19842154042: 求有意思的经典C语言小程序 - ?
能水诺普: /*汉诺塔C语言版: http://www.ivanblog.cn/post/hano-cpp.html*/ #include void hanoi(int n,char A,char B,char C) { if(n==1) { printf("Move disk %d from %c to %c\n",n,A,C); } else { hanoi(n-1,A,C,B); printf("Move disk %d from %c to %c\n",n,A,C); ...
涪城区19842154042: c语言能写出什么样有意思的小程序? - ?
能水诺普: #include <stdlib.h> #include <stdio.h> #include <math.h> #include <time.h> #define numOfQuestions 10 void main() { srand(1); for(int i=0;i<numOfQuestions ;i++) { bool add = rand()%2; char oper = '-'; if(add) oper = '+'; int a = rand()%100; int b = ...
涪城区19842154042: 求助啊,谁有有趣的c语言小程序,并且要有源代码!! - ?
能水诺普: #include#include#define numOfQuestions 10 void main() { srand(1); for(int i=0;ia)b = rand()%100; } printf("%d %c %d =?", a, oper, b); int answer = 0; scanf("%d", &answer); bool correct = false; if(add) { if(answer == (a + b)) correct = true; } ...
涪城区19842154042: 一个有趣的c语言程序,是不是高手都进来看看啊 - ?
能水诺普: #include int main(int argc, char* argv[]) { int i, count = 0; int maxNum = 147 + 1; // 每隔7s,21次,共耗时147秒 int arr[147 + 1]; for (i = 0; i < maxNum; i++) { arr[i] = 0; } for (i = 0; i < 5*21; i += 5) { arr[i] = 1; } for (i = 0; i < 6*21; i += 6) { arr[i] = 1; } for (i = ...
涪城区19842154042: 可以用C语言编写哪些创意程序 - ?
能水诺普: 用C++更简单方便,小游戏的话,例如某人输入名字生日就会随即产生一个小预言什么的,编写起来都相对简单.还有便是猜数字,程序随机产生一个数字,玩家猜,大了小了都有相对应的提示
涪城区19842154042: 谁有一些简单小游戏的C语言程序? - ?
能水诺普: 可以学写“贪吃蛇”代码:#include <stdio.h>#include <stdlib.h>#include <conio.h>#include <time.h>#include <Windows.h>#define W 78 //游戏框的宽,x轴#define H 26 //游戏框的高,y轴 int dir=3; //方向变量,初值3表示向“左” int Flag=0; ...
涪城区19842154042: 求一些用C语言编写的有趣程序 - ?
能水诺普: 用vc就可以,它是专门做工程的,兼容C语言和C++,TC2.0是C语言的集成编译环境软件