百度
360搜索
搜狗搜索

c语言源代码大全,c语言玫瑰花的编程源代码详细介绍

本文目录一览: 最简单的C语言代码

补加#include

后没有问题了啊,难道你是指输出的结果不是你想要的,那么你可以将换行符放到字符串后面,如:

printf("\nHello World");=>printf("Hello World\n");

是不是就是你想要的效果?

另外,main函数没有参数的,不用加个void在里面。

因为i j的值在for的外面赋值了

i的第一次循环结束时j的值永远是6所以里面的语句不会再被执行了。故只循环了一次i,即i=1的时候,其他值都没有进去到j循环。

#include

void main(void)

{

printf("Hello World \n");

}

你的意思应该是要换行,那要写在后面啦。

没有错误的。

加油哦~

最简单就是输出helloWord

代码如下:

#include

int main(){

printf("helloword");

return 0;

}

1、很懂代码都非常简单,输出1+1=2是其中之一。

2、例程:

#include

int main(){ printf(“1+1=2\n”);return 0;}

最简单的C语言代就是输出“helloWord”,通常是作为初学编程语言时的第一个程序代码。具体代码如下:

#include

int main(){

printf("Hello, World! \n");

return 0;

}

扩展资料:

1、程序的第一行#include

是预处理器指令,告诉 C 编译器在实际编译之前要包含 stdio.h 文件。

2、下一行intmain()是主函数,程序从这里开始执行。

3、下一行printf(...)是C中另一个可用的函数,会在屏幕上显示消息"Hello,World!"。

4、下一行return0;终止main()函数,并返回值0。

参考资料来源:百度百科-c语言

求几个比较有趣,简单的C语言源代码 小白自己敲着练一下手感

例一://按"1"、"2"控制
#include"stdio.h"
#include"conio.h"
void delay(int x)
{ int y;
while(x--)
for(y=0;y<125;y++)
{;}
}
void pout(int i)
{
if(i==1)
{
printf("%c",26);
delay(1000000);
printf("\b%c",0);
}
if(i==2)
{
printf("\b%c",0);
printf("%c",27);
delay(1000000);
printf("\b%c\b\b",0);
}
}
int main()
{
int a=1;
while(1)
{
if(kbhit())
{
a=getch()-48;
}
pout(a);
}
return 0;
}
例二:猜一个1~到100的数
#include

#include

#include

using namespace std;

int main()

{

srand(time(0));//生成随机数生成器种子

int theNumber=rand()%100+1;//1-100的随机数

int tries=0,guess;

cout<<"\tWecome to Guess My Number\n\n";

do

{

cout<<"Enter a guess:";

cin>>guess;

++tries;

if(guess>theNumber)

cout<<"Too high!\n\n";

if(guess
<thenumber)
cout<<"Too low!\n\n";

}while(guess!=theNumber);

cout<<"\nThat's it! You got it in "<
<tries<<" guess!\n";
return 0;

}

/* 关于进程获取

*/

#include

#include

#include

//声明快照函数的头文件

int main(int argc,char* argv[])

{

PROCESSENTRY32 pe32;

//在使用这个结构之前,先设置它的大小

pe32.dwSize = sizeof(pe32);

//给系统内的所有进程拍一个快照

HANDLE hProcessSnap =::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);

if (hProcessSnap == INVALID_HANDLE_VALUE)

{

printf("CreateTOOLhelp32Snapshot 调用失败!\n" );

return -1;}

//遍历进程快照,轮流显示每个进程的信息

BOOL bMore = ::Process32First(hProcessSnap,&pe32);

while (bMore)

{

printf("进程名称:%s \n",pe32.szExeFile);

printf("进程ID号:%u\n\n",pe32.th32ProcessID);

bMore =::Process32Next (hProcessSnap,&pe32);

}

//不要忘记清楚掉snapshort 对象

::CloseHandle(hProcessSnap);

return 0;

}

//内存泄露。。。打开任务管理器 在运行。。看内存变化

#include

#include "stdio.h"

unsigned long a=0;

void main()

{

char *p;

while(1)

{

p=(char *)malloc(sizeof(char)*1024*1024);

// printf("%d,%d\n",a++,p);

Sleep(10);

}

}

最简单的模拟计时器:

#include

#include

#include

int m=0,s=0,ms=0; //m是分 s是秒 ms是毫秒

//以下是5个自编函数

void csh( ); //初始化界面

void yinc(int x,int y); //隐藏光标的函数(y值设为0就会隐藏)

void jishi( ); //计时器运行(每100毫秒变化一次)

void Color (short x, short y); //设定颜色的函数(y设为0就是黑底)

void gtxy (int x, int y); //控制光标位置的函数

int main( ) //主函数

{ csh( );

getch( );

while(1)

{ jishi( );

Sleep(100); //间隔100毫秒

if( kbhit( ) )break; //有键按下就退出循环

}

return 0;

}

void csh( ) //初始化界面

{Color(14,0); //设定淡黄字配黑底

printf(“\n\n\t 计时器”);

Color(10,0); //设定淡绿字配黑底

printf("\n\t┌───────────┐");

printf("\n\t│ │");

printf("\n\t└───────────┘");

gtxy(10,4); //光标到屏幕第10列4行处输出

Color(7,0); //恢复白字黑底

printf(" 00:00:00 ");

yinc(1,0 ); //隐藏光标(yinc代表隐藏)

return;

}

void jishi( ) //计时器运行

{ms+=1;

if(ms==10){s+=1;ms=0;}

if(s==60){m+=1;s=0;}

gtxy(10,4);

Color(9,0); //设定淡蓝字配黑底

if(m>9) printf(" %d:",m);

else printf(" 0%d:",m);

Color(14,0); //设定淡黄字配黑底

if(s>9) printf("%d:",s);

else printf("0%d:",s);

Color(12,0); //设定淡红字配黑底

printf("0%d",ms);

}

void gtxy (int x, int y) //控制光标位置的函数

{ COORD pos;

pos.X = x;

pos.Y = y;

SetConsoleCursorPosition ( GetStdHandle (STD_OUTPUT_HANDLE), pos );

}

void Color (short ForeColor= 7, short BackGroundColor= 0) //设定颜色的函数

{ HANDLE handle = GetStdHandle ( STD_OUTPUT_HANDLE );

SetConsoleTextAttribute ( handle, ForeColor + BackGroundColor * 0x10 );

}

void yinc(int x,int y) //隐藏光标的设置(gb代表光标)

{ CONSOLE_CURSOR_INFO gb={x,y}; //x为1-100,y为0就隐藏光标

SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &gb);

}

</tries<
</thenumber)

c语言玫瑰花的编程源代码

#include

#include

usingnamespacestd;voidgetRoseNum(intlower,intupper);boolisRoseNum(intn);voidmain(){intupper,lower;cout<<“请输入下界:”<

>lower;cout<<“请输入上界:”<

>upper。

cout<<“所有玫瑰花数:”getRoseNum(lower,upper);}voidgetRoseNum(intlower,intupper){if((lower<1000)||(upper>9999)){cout<<“上下界错误!”<
<endl;return;}for(inti=lower;i<=upper;i++){if(isrosenum(i))。
注意事项:

C语言是普适性最强的一种计算机程序编辑语言,它不仅可以发挥出高级编程语言的功用,还具有汇编语言的优点,因此相对于其它编程语言,它具有自己独特的特点。具体体现为以下三个方面:

其一,广泛性。C语言的运算范围的大小直接决定了其优劣性。C语言中包含了34种运算符,因此运算范围要超出许多其它语言,此外其运算结果的表达形式也十分丰富。此外,C语言包含了字符型、指针型等多种数据结构形式,因此,更为庞大的数据结构运算它也可以应付。

其二,简洁性。9类控制语句和32个关键字是C语言所具有的基础特性,使得其在计算机应用程序编写中具有广泛的适用性,不仅可以适用广大编程人员的操作,提高其工作效率,同时还能够支持高级编程,避免了语言切换的繁琐。

其三,结构完善。C语言是一种结构化语言,它可以通过组建模块单位的形式实现模块化的应用程序,在系统描述方面具有显著优势,同时这一特性也使得它能够适应多种不同的编程要求,且执行效率高。
</endl;return;}for(inti=lower;i<=upper;i++){if(isrosenum(i))。

C语言简易文字冒险游戏源代码

记忆游戏
#include

#include

#include

#include

#define N 10

int main( )

{int i,k,n,a[N],b[N],f=0;

srand(time(NULL));

printf(" 按1开始\n 按0退出:_");

scanf("%d",&n);

system("cls");

while(n!=0)

{for(k=0;k
<n;k++)a[k] = rand( )%n;
printf("\n\t\t[请您牢记看到颜色的顺序]\n\n");

for(k=0;k
<n;k++)
{switch(a[k])

{case 0:system("color 90");printf(" 0:淡蓝色\n");break; //淡蓝色

case 1:system("color f0");printf(" 1:白色\n");break; //白色

case 2:system("color c0");printf(" 2:淡红色\n");break; //淡红色

case 3: system("color d0");printf(" 3:淡紫色\n");break; //淡紫色

case 4: system("color 80");printf(" 4:灰色\n"); break; //灰色

case 5: system("color e0");printf(" 5:黄色\n");break; //黄色

case 6: system("color 10");printf(" 6:蓝色\n"); break; //蓝色

case 7: system("color 20");printf(" 7:绿色\n");break; //绿色

case 8: system("color 30");printf(" 8:浅绿色\n");break; //浅绿色

case 9: system("color 40");printf(" 9:红色\n");break; //红色

}

Sleep(1500);

system("color f"); //单个控制 文字颜色

Sleep(100);

}

system("cls");

printf(" 0:淡蓝色,1:白色,2:淡红色,3:淡紫色,4:灰色,5:黄色,6:蓝色7:绿色,8:浅绿色,9:红色\n");

printf("\n\t请输入颜色的顺序:");

for(k=0;k
<n;k++)scanf("%d",&b[k]);
for(k=0;k
<n;k++)if(a[k] =="b[k])" f++;
if(f==0) printf(" 你的记忆弱爆了0\n");

else if(f==1) printf(" 你的记忆有点弱1\n");

else if(f<5) printf(" 你的记忆一般<5\n");

else printf(" 你的记忆力很强!\n");

Sleep(2000);

system("cls");

printf("\t\t按0退出\n\t\t按任意键继续游戏:\n");

scanf("%d",&n);

system("cls");

}

return 0;

}

注:DEVc++运行通过,每输入一个数字要加入一个空格。

</n;k++)scanf("%d",&b[k]);
</n;k++)

c语言 图书管理系统 源代码

#include
#include
#include
#include
#include
struct book{
char number[100];
char tittle[100];
char writer[100];
char publisher[100];
char date[100];
char price[100];
char status[100];
char reader[100];
};
void search_book();
void borrow_book();
void return_book();
void add_book();
void delete_book();
void modify_book();
void scan_book();
int main()
{
int c1=0,c2,c3;
int l,x,z;
while(1)
{
system("color 2C");
printf("\t\t\t ^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^ \n");
printf("\t\t\t| * - * - * -图书管理系统 * - * - * |\n");
printf("\t\t\t* [1] 用户登录 *\n");
printf("\t\t\t* [2] 管理员登录 *\n");
printf("\t\t\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^ \n");
printf("\n");
printf("请选择操作 :");
scanf("%d",&c1);
system("cls");
break;
}
if(c1==1)
{
while(1){
system("color 2C");
printf("\t\t\t ^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^ \n");
printf("\t\t\t| * - * - * -图书管理系统 * - * - * |\n");
printf("\t\t\t* [1] 查询图书 *\n");
printf("\t\t\t| [2] 借阅图书 |\n");
printf("\t\t\t* [3] 借图书 *\n");
printf("\t\t\t* [4] 浏览图书信息 *\n");
printf("\t\t\t| [5] 退图书管理系统 |\n");
printf("\t\t\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^ \n");
printf("\n");
printf("请选择操作 :");
scanf("%d",&c2);
getchar();
switch(c2)
{
case 1:search_book(); break;
case 2:borrow_book(); break;
case 3:return_book(); break;
case 4:scan_book(); break;
case 5:system("cls"); return 0;
}
}
}
if(c1==2)
{
while(1){
system("color 2C");
printf("\t\t\t ^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^ \n");
printf("\t\t\t| * - * - * -图书管理系统 * - * - * |\n");
printf("\t\t\t| [1] 添加图书 |\n");
printf("\t\t\t* [2] 删减图书 *\n");
printf("\t\t\t| [3] 修改图书信息 |\n");
printf("\t\t\t* [4] 浏览图书信息 *\n");
printf("\t\t\t| [5] 退图书管理系统 |\n");
printf("\t\t\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^ \n");
printf("\n");
printf("请选择操作 :");
scanf("%d",&c3);
getchar();
switch(c3)
{
case 1:add_book(); break;
case 2:delete_book(); break;
case 3:modify_book(); break;
case 4:scan_book(); break;
case 5:system("cls"); return 0;
}
}
}
}
/*查询图书*/
void search_book()
{
FILE*fp;
struct book n;
struct book nn;
int l,r;
char x,z;
fp=fopen("F:\\课程设计\\图书管理系统.txt","rb");
while(1)
{
l=0;
system("cls");
printf("请输入图书名称:");
scanf("%s",n.tittle);
fflush(stdin);
rewind(fp);
while(1)
{
fread(&nn,sizeof(nn),1,fp);
if(feof(fp))
break;
r=strcmp(n.tittle,nn.tittle );
if(r==0)
{
l=1;
break;
}
}
if(l==0)
{
printf("没要查询图书\n\n ");
}
else
{
printf("查询图书:");
printf("\n");
printf("****************************************\n");
printf("编号 书名 作者 版社 版间 价格 状态 借阅者\n");
printf("\n");
printf("%s %s %s %s %s %s %s",nn.number,nn.tittle,nn.writer,nn.publisher,nn.date,nn.price,nn.status,nn.reader);
printf("\n\n\n");
}
printf("否继续查询图书 ? [(y)/否(n)] ? \n\n");
do
{
x=getche();
}while(x!='n'&&x!='y');
if(x=='n')
break;
}
fclose(fp);
system("cls");
}
//添加
void add_book()
{
FILE *fp;
struct book n;
struct book nn;
char x,z;
int l,r;
fp=fopen("F:\\课程设计\\图书管理系统.txt","ab+");
do
{
system("cls");
do
{
l=0;
printf("\n");
printf("编号 书名 作者 版社 版间 价格 状态 借阅者\n");
fflush(stdin);
scanf("%s %s %s %s %s %s %s %s",n.number,n.tittle,n.writer,n.publisher,n.date,n.price,n.status,n.reader);
system("cls");
rewind(fp);
while(!feof(fp))
{
fread(&nn,sizeof(nn),1,fp);
r=strcmp(n.tittle,nn.tittle);
if(r==0)
{
l=1;
printf(" 该图书已存请输入新图书信息: \n\n");
break;
}
}
}while(l);
fwrite(&n,sizeof(n),1,fp);
printf("\n");
printf("否继续输入新图书信息[y/n] \n\n");
do
{
x=getche();
}while(x!='n'&&x!='y');
}while(x=='y');
fclose(fp);
system("cls");
}
//删除图书
void delete_book()
{
FILE *fp,*fp1;
char x,z;
struct book n;
struct book nn;
int l,r;
fp=fopen("F:\\课程设计\\图书管理系统.txt","ab+");
while(1)
{
l=0;
system("cls");
printf("\n");
printf("请输入需要删除图书名: \n\n");
fflush(stdin);
scanf("%s",&n.tittle);
rewind(fp);
while(1)
{
fread(&nn,sizeof(nn),1,fp);
if(feof(fp))
break;
r=strcmp(n.tittle,nn.tittle);
if(r==0)
{
l=1;
break;
}
}
if(l==0)
{
printf("\n");
printf("起未找该图书 \n");
}
else
{
printf("\n");
printf("****************************************\n");
printf("编号 书名 作者 版社 版间 价格 状态 借阅者\n");
printf("\n");
printf("%s %s %s %s %s %s %s %s",nn.number,nn.tittle,nn.writer,nn.publisher,nn.date,nn.price,nn.status,nn.reader);
printf("\n");
printf("确认删除图书信息 [(y)/否(n)]\n\n");
do
{
z=getche();
}while(z!='n'&&z!='y');
if(z=='n')
break;
else
{
fp1=fopen("F:\\课程设计\\图书管理系统new.txt","wb");
rewind(fp);
while(1)
{
fread(&nn,sizeof(nn),1,fp);
if(feof(fp))
break;
r=strcmp(n.tittle,nn.tittle);
if(r!=0)
fwrite(&nn,sizeof(nn),1,fp1);
}
fclose(fp);
fclose(fp1);
fp=fopen("F:\\课程设计\\图书管理系统.txt","wb");
fp1=fopen("F:\\课程设计\\图书管理系统new.txt","rb");
while(1)
{
fread(&nn,sizeof(nn),1,fp1);
if(feof(fp1))
break;
fwrite(&nn,sizeof(nn),1,fp);
}
fclose(fp);
fclose(fp1);
}
}
printf("\n");
printf("否继续删除图书信息 [(y)/否(n)] \n");
do
{
x=getche();
}while(x!='n'&&x!='y');
if(x=='n')
break;
}
fclose(fp);
system("cls");
}
//修改图书信息
void modify_book()
{
FILE *fp;
struct book n;
struct book nn;
int l,r;
char x,z;
fp=fopen("F:\\课程设计\\图书管理系统.txt","rb+");
while(1)
{
l=0;
printf("\n");
system("cls");
printf("请输入需要修改图书名: \n\n");
fflush(stdin);
scanf("%s",&n.tittle);
system("cls");
rewind(fp);
while(1)
{
fread(&nn,sizeof(nn),1,fp);
if(feof(fp))
break;
r=strcmp(n.tittle,nn.tittle);
if(r==0)
{
l=1;
break;
}
}
if(l==0)
{
printf("\n");
printf("起未找该图书信息 \n\n");
}
else
{
printf("\n");
printf("****************************************\n");
printf("编号 书名 作者 版社 版间 价格 状态 借阅者\n");
printf("\n");
printf("%s %s %s %s %s %s %s %s",nn.number,nn.tittle,nn.writer,nn.publisher,nn.date,nn.price,nn.status,nn.reader);
printf("请依修改图书信息\n\n\n");
fflush(stdin);
scanf("%s %s %s %s %s %s %s %s",n.number,n.tittle,n.writer,n.publisher,n.date,n.price,n.status,n.reader);
fseek(fp,sizeof(nn),1);
fwrite(&n,sizeof(nn),1,fp);
}
printf("\n");
printf(" 否继续修改用户信息[y/n]? \n\n");
do
{
x=getch();
}while(x!='n'&&x!='y');
if(x=='n')
break;
}
fclose(fp);
system("cls");
}
//借书
void borrow_book()
{
FILE*fp;
struct book n;
struct book nn;
char x,z;
int l,r;
fp=fopen("F:\\课程设计\\图书管理系统.txt","rb+");
while(1)
{
l=0;
system("cls");
printf("\n");
printf("请输入需要借阅图书名: \n");
fflush(stdin);
scanf("%s",&n.tittle);
rewind(fp);
while(1)
{
fread(&nn,sizeof(nn),1,fp);
if(feof(fp))
break;
r=strcmp(n.tittle,nn.tittle);
if(r==0)
{
l=1;
break;
}
}
if(l==0)
{
printf("\n");
printf("起未找该图书 \n");
}
else
{ printf("\n");
printf("****************************************\n");
printf("编号 书名 作者 版社 版间 价格 状态 借阅者\n");
printf("\n");
printf("%s %s %s %s %s %s %s %s",nn.number,nn.tittle,nn.writer,nn.publisher,nn.date,nn.price,nn.status,nn.reader);
printf("\n");
fflush(stdin);
printf("请输入图书信息并修改库状态及借阅者信息");
printf("****************************************\n");
printf("编号 书名 作者 版社 版间 价格 状态 借阅者\n");
printf("\n");
scanf("%s %s %s %s %s %s %s %s",n.number,n.tittle,n.writer,n.publisher,n.date,n.price,n.status,n.reader);
fseek(fp,sizeof(nn),1);
fwrite(&n,sizeof(nn),1,fp);
}
printf("\n");
printf(" 否继续借书 [(y)/否(n)] \n\n");
do
{
x=getch();
}while(x!='n'&&x!='y');
if(x=='n')
break;
}
fclose(fp);
system("cls");
}
//书
void return_book()
{
FILE*fp;
struct book n;
struct book nn;
char x,z;
int l,r;
fp=fopen("F:\\课程设计\\图书管理系统.txt","rb+");
while(1)
{
l=0;
system("cls");
printf("\n");
printf("请输入需要借图书名: \n");
fflush(stdin);
scanf("%s",&n.tittle);
rewind(fp);
while(1)
{
fread(&nn,sizeof(nn),1,fp);
if(feof(fp))
break;
r=strcmp(n.tittle,nn.tittle);
if(r==0)
{
l=1;
break;
}
}
if(l==0)
{
printf("\n");
printf("起未找该图书 \n");
}
else
{
printf("\n");
printf("****************************************\n");
printf("编号 书名 作者 版社 版间 价格 状态 借阅者\n");
printf("\n");
printf("%s %s %s %s %s %s %s %s",nn.number,nn.tittle,nn.writer,nn.publisher,nn.date,nn.price,nn.status,nn.reader);
printf("\n");
fflush(stdin);
printf("请输入图书信息并修改库状态 \n\n");
printf("****************************************\n");
printf("编号 书名 作者 版社 版间 价格 状态 借阅者\n");
printf("\n");
scanf("%s %s %s %s %s %s %s %s",n.number,n.tittle,n.writer,n.publisher,n.date,n.price,n.status,n.reader);
fseek(fp,-(int)sizeof(nn),1);
fwrite(&n,sizeof(nn),1,fp);
}
printf("\n");
printf("否继续书 [(y)/否(n)] \n");
do
{
x=getche();
}while(x!='n'&&x!='y');
if(x=='n')
break;
}
fclose(fp);
system("cls");
}
//浏览
void scan_book()
{
FILE*fp;
char x,z;
struct book n;
fp=fopen("F:\\课程设计\\图书管理系统.txt","rb");
rewind(fp);
system("cls");
while(1)
{
fread(&n,sizeof(n),1,fp);
if(feof(fp))
break;
else
{
printf("********************************************\n");
printf("编号 书名 作者 版社 版间 价格 状态 借阅者\n");
printf("\n");
printf("%s %s %s %s %s %s %s %s",n.number,n.tittle,n.writer,n.publisher,n.date,n.price,n.status,n.reader);
printf("\n");
}
}
printf("\n");
printf("主菜单请按车");
do
{
x=getche();
}while(x!='\r');
if(x=='\r')
{
fclose(fp);
system("cls");
}
}

请写出下面程序对应的C语言的源代码。

程序如下:
#include

int main()

{

int f;

float c;

printf("请输入一个华氏温度\n");

scanf_s("%d", &f);

c = (float)(f - 32) * 5 / 9;

printf("它的摄氏温度为:%.2f", c);

}

如图:

调试通过:

扩展资料:

C语言编写程序时的注意事项:

1、书写标识符时,忽略了大小写字母的区别

编译程序把a和A认为是两个不同的变量名,而显示出错信息。C认为大写字母和小写字母是两个不同的字符。习惯上,符号常量名用大写,变量名用小写表示,以增加可读性。

2、忽略了变量的类型,进行了不合法的运算

%是求余运算,得到a/b的整余数。整型变量a和b可以进行求余运算,而实型变量则不允许进行“求余”运算。

3、将字符常量与字符串常量混淆

在这里就混淆了字符常量与字符串常量,字符常量是由一对单引号括起来的单个字符,字符串常量是一对双引号括起来的字符序列。C规定以“\”作字符串结束标志,它是由系统自动加上的,所以字符串“a”实际上包含两个字符:‘a’和‘\0’,而把它赋给一个字符变量是不行的。

4、忽略了“=”与“==”的区别

在许多高级语言中,用“=”符号作为关系运算符“等于”。但C语言中,“=”是赋值运算符,“==”是关系运算符,由于习惯问题,初学者往往会犯这样的错误。

5、忘记加分号

分号是C语句中不可缺少的一部分,语句末尾必须有分号。编译时,编译程序在“a=1”后面没发现分号,就把下一行“b=2”也作为上一行语句的一部分,这就会出现语法错误。

改错时,有时在被指出有错的一行中未发现错误,就需要看一下上一行是否漏掉了分号。对于复合语句来说,最后一个语句中最后的分号不能忽略不写(这是和PASCAL不同的)。

6、多加分号

对于一个复合语句, 复合语句的花括号后不应再加分号,否则将会画蛇添足。如:

if (a%3==0); I++; 本是如果3整除a,则I加1。但由于if (a%3==0)后多加了分号,则if语句到此结束,程序将执行I++语句,不论3是否整除a,I都将自动加1。

7、输入变量时忘记加地址运算符“&”

int a,b; scanf(“%d%d”,a,b); 这是不合法的。scanf函数的作用是:按照a、b在内存的地址将a、b的值存进去。“&a”指a在内存中的地址。

8、输入数据的方式与要求不符

scanf(“%d%d”,&a,&b); 输入时,不能用逗号作两个数据间的分隔符;

scanf(“%d,%d”,&a,&b); C规定:如果在“格式控制”字符串中除了格式说明以外还有其它字符,则在输入数据时应输入与这些字符相同的字符。

参考资料来源:C语言-百度百科

阅读更多 >>>  c语言简单心形代码,用C语言输出心型图案。

求C语言图书管理系统源代码

#include

#include

#include

//

#define MAXSIZE 100 //最大值定义为100

#define LIST_INIT_SIZE 100//图书证使用者最大值定义为100

//借书人的结构体

typedef struct Boro//借书行为

{

char BNum[20];//借书的书号

char RetDate[8];//归还日期

struct Boro *next;

}Bor;

typedef struct LinkBook

{

Bor *next;//该图书证的借书行为

char CNum[20];//证号

int Total;//借书的数量

}lend[LIST_INIT_SIZE];//借书人数组

//图书的结构体信息

typedef struct LNode

{

char CardNum[20];//图书证号

struct LNode *next;

}LinkList; //借书人

typedef struct book

{//每种图书需要登记的内容包括书号ISBN、书名、作者、出版社、总库存量和现库存量。

char num[20];//书号

char name[20];//书名

char auth[20];//作者

char pub[20];//出版社

int TotNum;//总库存

int NowNum;//现库存

LinkList *next;//借了该书的人

}ook[MAXSIZE];

//

int Retotal;//读者数量

int total; //定义外部变量.书的种类数

//

//结构体初始化

void InitBo(ook &boo) //初始化图书信息

{

for(int i=0;i
<maxsize;i++)
{

boo[i].NowNum=0;

boo[i].TotNum=0;

boo[i].next=NULL;

}

}

void InitRe(lend &Lin) //初始化借阅者信息

{

for(int i=0;i
<list_init_size;i++)
Lin[i].next=NULL;

}

//

int mid=0;//外部函数mid,用来返回查找到的位置

bool BinarySearch(ook boo,char SearchNum[]) //二分法查找比较书号

{ //用bool函数,但由于函数不能有两个返回值,所以设置一个外部变量mid,用来返回查找到的位置

int low=0,high=total-1;

int found=0;

while(low<=high)

{

mid=(low+high)/2; //中间点

if(strcmp(boo[mid].num,SearchNum)==0) //书号相同

{

found=1;

return true;

}//查找成功

if(strcmp(boo[mid].num,SearchNum)!=0)//书号不同

high=mid-1;

else low=mid+1;

}

if(found==0)

return false; //查找失败

}

void Buy(ook &boo, char BuyNum[])

{//1、 采编入库:新购入一种书,如果该书在图书账目中已经存在,则将其库存量增加(包

//括总库存量和现库存量),如果该书不存在,则在图书账目中增加一种书,总库存量和现库存量均为1。

if(BinarySearch(boo,BuyNum)) //如果书库中有此书

{

boo[mid].TotNum++; //总库存加1

boo[mid].NowNum++; //现库存加1

printf("入库成功.\n");

printf("已更改书库中该书的信息。编号 %s 的书 %s 作者是 %s ,出版社是 %s ,目前的总库存是 %d ,现库存是 %d 。\n",boo[mid].num,boo[mid].name,boo[mid].auth,boo[mid].pub,boo[mid].TotNum,boo[mid].NowNum);

}

if(!BinarySearch(boo,BuyNum))

{

int i;

for(i=total;i>mid&&total;i--) //插在适合位置 保持有序

boo[i]=boo[i-1]; //空出插入位置

printf("该书在书库中不存在。设立新书目,请补全书的详细信息。\n");

strcpy(boo[i].num,BuyNum);

printf("该书购入的数量是:");

scanf(" %d",&boo[i].NowNum);

boo[i].TotNum=boo[i].NowNum;

printf("该书的名字是:");

scanf(" %s",&boo[i].name);

printf("该书的作者是:");

scanf(" %s",&boo[i].auth);

printf("该书的出版社是:");

scanf(" %s",&boo[i].pub);//补全信息

boo[i].next=NULL;

total++;//总量+1

printf("已增加该书的信息。编号 %s 的书 %s 作者是 %s ,出版社是 %s ,目前的总库存是 %d ,现库存是 %d 。\n",boo[i].num,boo[i].name,boo[i].auth,boo[i].pub,boo[i].TotNum,boo[i].NowNum);

printf("入库成功.\n");

}

}

void Delete(ook &boo,char DeleteNum[])

{//2、 清空库存:某一种书已无保留价值,将它从图书账目中注销。

if(BinarySearch(boo,DeleteNum)==false||total==0) //如果无此书

printf("书库中没有该书.\n");

if(BinarySearch(boo,DeleteNum))//若有

{

if(!boo[mid].next)

{

int j;

for( j=mid;j
<total;j++)
boo[j]=boo[j+1];

strcpy(boo[j].num,boo[j+1].num);

strcpy(boo[j].name,boo[j+1].name);

strcpy(boo[j].auth,boo[j+1].auth);

strcpy(boo[j].pub,boo[j+1].pub);

boo[j].TotNum=boo[j+1].TotNum;

boo[j].NowNum=boo[j+1].NowNum;

printf("已成功删除该书.\n");

}

else printf("该书有借阅者,无法删除。\n");

}

}

void Borrow(ook &boo,lend &Lin,char BorrowNum[],char CaNum[])

{//3、 借阅:如果一种书的现库存量大于零,则借出一本书,将现库存量减1,

//并登记借阅者的图书证号和归还期限。

Bor *p,*q;

LinkList *m,*n;

if(!BinarySearch(boo,BorrowNum)||total==0) //如果没有找到此书

printf("书库里没这书。\n");//如果有这书

if(BinarySearch(boo,BorrowNum)) //书库里有

{

if(boo[mid].NowNum>0) //看现库存是否大于0

{

boo[mid].NowNum--;//借出一本,少1

if(boo[mid].next==NULL) //若该书信息下显示该种书还没被人借过

{

m=(LinkList *)malloc(sizeof(LNode));//分配

boo[mid].next=m;//该图书信息中的链表的第一个结点

strcpy(m->CardNum,CaNum);

m->next=NULL;//后一个结点为空

}

else //如果已经有人在借这书了

{

m=boo[mid].next;

while(m->next) //遍历到最后一个结点

m=m->next;

n=(LinkList *)malloc(sizeof(LNode));//分配空间,增加1个结点

m->next=n;

strcpy(n->CardNum,CaNum);//记录证号

n->next=NULL;

}

int i=0;

for(i=0;i
<retotal;i++)
{

if(!strcmp(Lin[i].CNum,CaNum))//如果已经有该图书证的信息

{

p=Lin[i].next;

while(p->next)p=p->next;//遍历到最后一个结点

q=(Bor *)malloc(sizeof(Boro));//分配空间

p->next=q;

strcpy(q->BNum,BorrowNum); //记录书号

printf("输入归还日期:");

scanf("%s",&q->RetDate);

q->next=NULL;

printf("借阅成功.\n");

break; //找到证了就跳出循环

}

}

if(i==Retotal)//如果没有这张证的信息

{

strcpy(Lin[i].CNum,CaNum); //记录证号

p=(Bor *)malloc(sizeof(Boro)); //分配空间

Lin[i].next=p;

strcpy(p->BNum,BorrowNum);

printf("输入归还日期:");

scanf(" %s",&p->RetDate);

p->next=NULL;

Retotal++; //借阅证号信息总数加1

printf("借阅成功.\n");

}

}

else printf("借阅失败.该书现在库存为0.\n");

}

}

void Return(ook &boo,lend &Lin,char ReturnNum[],char BorrowerNum[])

{//4、 归还:注销对借阅者的登记,改变该书的现存量。

Bor *p,*q;

LinkList *m,*n;

int flag=0;//设置一个参数

if(!BinarySearch(boo,ReturnNum)||!total) //没书

printf("书库中无此书.\n");

if(BinarySearch(boo,ReturnNum)) //有书

{

m=boo[mid].next;

if(!strcmp(m->CardNum,BorrowerNum)) //如果是第一个借的人还的

{

boo[mid].NowNum++; //现库存加1

boo[mid].next=m->next; //删除结点

free(m); //释放该结点的空间空间

}

else

{

while(m->next) //查找归还者的借阅者结点

{

if(!strcmp(m->next->CardNum,BorrowerNum)) //如果找到

{

n=m->next; //n为归还者的借阅结点

m->next=n->next; //m指向归还者的借阅结点的下一结点

free(n); //释放空间

boo[mid].NowNum++; //现库存加1

break;

}

m=m->next;

}

}

}

//在借阅者表里查找借阅者信息

for(int i=0;i
<retotal;i++)
{

if(!strcmp(Lin[i].CNum,BorrowerNum)) //如果找到借阅者

{

p=Lin[i].next;

if(!strcmp(p->BNum,ReturnNum)) //如果是归还的是借的第一本书

{

Lin[i].next=p->next; //指向下一借书结点

free(p); //释放结点空间

printf("成功归还该书.\n");

flag=1;

break;

}

else //找不到

{

while(p->next) //找到归还书的借书结点

{

if(!strcmp(p->next->BNum,ReturnNum)) //如果找到

{

q=p->next; //q为归还书的借书结点

p->next=q->next; //p指向下一借书结点

free(q); //释放空间

printf("成功归还该书.\n");

flag=1;

break;

}

p=p->next;

}

}

}

}

for(int k=0;k
<retotal;k++)
if(!Lin[k].next)

{

int j;

for(j=k;j
<retotal;j++)
Lin[j]=Lin[j+1]; //其后都往前移一位,覆盖掉当前信息

strcpy(Lin[j].CNum," "); //删除图书证号

Retotal--; //图书证数减1

} //删除当前状态下没借书的图书证的信息,节省空间

if(flag==0) printf("无该证信息.\n");

}

//5、 查找:实现按三种查询条件之一查找:按书号查找、

//按书名查找、按作者查找。注:可不实现组合查找,即几个条件组合查找。

void SearchByNum(ook &boo,char SeaNum[])

{//BY NUM 根据书号查找

LinkList *p;

p=boo[mid].next;

if(BinarySearch(boo,SeaNum)==false)printf("对不起,未找到您想查找的书。\n");//二分查找 没找到

else//找到了的话

{

{

printf("┏━━━━━━━┳━━━━━━━┳━━━━━━━━┳━━━━━━━━┳━━━━━┳━━━━━┓\n");

printf("┃ 书号 ┃ 书名 ┃ 作者 ┃ 出版社 ┃ 现库存 ┃ 总库存 ┃\n");

printf("┣━━━━━━━╋━━━━━━━╋━━━━━━━━╋━━━━━━━━╋━━━━━╋━━━━━┫\n");

printf("┃%14s┃%14s┃%16s┃%16s┃%10d┃%10d┃\n",boo[mid].num,boo[mid].name,boo[mid].auth,boo[mid].pub,boo[mid].NowNum,boo[mid].TotNum);

printf("┗━━━━━━━┻━━━━━━━┻━━━━━━━━┻━━━━━━━━┻━━━━━┻━━━━━┛\n");

if(boo[mid].next!=NULL)

{

printf("┏━━━━━━━┓\n");

printf("┃ 已借该书的 ┃\n");

printf("┃ 图书证号 ┃\n");

while(p)

{

printf("┣━━━━━━━┫\n");

printf("┃%14s┃\n",p->CardNum);

p=p->next;

}

printf("┗━━━━━━━┛\n");

}

}

while(p)

{

printf(" %s ",p->CardNum);//在按书号查找的函数里也显示借了这本书的借阅者的证号

p=p->next;

}

printf(" \n");

}//显示查找的书籍的信息

}

void SearchByName(ook &boo)

{//BY NAME 根据书名查找

char SeaName[20];

printf("输入想查找的书的书名:\n");

scanf(" %s",&SeaName);

printf("找到符合该书名的书的详细信息如下:\n");

for(int i=0;i
<total;i++)
{

if(strcmp(SeaName,boo[i].name)==0)//如果书名一样

{

printf("书号:%s\n书名:%s\n作者:%s\n出版社:%s\n总库存量:%d\n现库存量:%d\n\n",boo[i].num,boo[i].name,boo[i].auth,boo[i].pub,boo[i].TotNum,boo[i].NowNum);

}//显示符合信息的所有书籍的信息

}

}

void SearchByAuth(ook &boo)

{// BY AUTH 根据作者查找

char SeaAuth[20];

printf("输入想查找的书的作者:\n");

scanf(" %s",&SeaAuth);

printf("找到符合该作者的书的详细信息如下:\n");

for(int i=0;i
<total;i++)
{

if(strcmp(SeaAuth,boo[i].auth)==0)//如果作者一样

{

printf("书号:%s\n书名:%s\n作者:%s\n出版社:%s\n总库存量:%d\n现库存量:%d\n\n",boo[i].num,boo[i].name,boo[i].auth,boo[i].pub,boo[i].TotNum,boo[i].NowNum);

}//显示符合信息的所有书籍的信息

}

}

//6、 查看:可查看某图书证号的借阅者借阅的全部图书,可查看全部超期未还的图书。

void ViewCard(ook &boo,lend &Lin)

{//查看某图书证号的借阅者借阅的全部图书

char Num[20];

printf("请输入您所想要查看的图书证号:\n");

scanf(" %s",&Num);

Bor *p;

int qqq=0;

for(int i=0;i
<retotal;i++)
{

if(strcmp(Lin[i].CNum,Num)==0) //找到该证

{

printf("这个证借的书有:\n");

p=Lin[i].next;

while(p)

{

printf(" %s ",p->BNum); //书号

p=p->next;

}

printf("\n");

qqq=1;

break;

}

}

if(qqq==0)

printf("该证不存在.\n");

}

void ViewBook(ook &boo,lend &Lin)

{//查看全部超期未还的图书

char date[8];

Bor *p;

printf("请输入日期(请按格式20060605输入):\n");

scanf(" %s",&date);

printf("所有超期未还的书有:\n");

for(int i=0;i
<retotal;i++)
{

p=Lin[i].next;

while(p)//当p不空时

{

if(strcmp(p->RetDate,date)<0) //超过日期

{

printf("书号为 %s 证号为 %s 应归还日期为 %s \n",p->BNum,Lin[i].CNum,p->RetDate);

}//显示所有超期未还的书的信息

p=p->next;

}

}

}

void Menu() //菜单

{

printf("┏—————————————————M E N U————————————————┓\n");

printf("│ │\n");

printf("│ 1. 采编入库:新购入一种书,如果该书在图书账目中已经存在, │\n");

printf("│ 则将其库存量增加(包括总库存量和现库存量)。 │\n");

printf("│ 如果该书不存在,则在图书账目中增加一种书, │\n");

printf("│ 总库存量和现库存量均为输入的数字。 │\n");

printf("│ 2. 清空库存:某一种书已无保留价值,将它从图书账目中注销。 │\n");

printf("│ 3. 借阅:如果一种书的现库存量大于零,则借出一本书,将现库存量减1, │\n");

printf("│ 并登记借阅者的图书证号和归还期限。 │\n");

printf("│ 4. 归还:注销对借阅者的登记,改变该书的现存量。 │\n");

printf("│ 5. 按书号查找。 │\n");

printf("│ 6. 按书名查找。 │\n");

printf("│ 7. 按作者查找。 │\n");

printf("│ 8. 查看某图书证号的借阅者借阅的全部图书。 │\n");

printf("│ 9. 查看全部超期未还的图书。 │\n");

printf("│ 0. 退出图书管理系统。 │\n");

printf("│ │\n");

printf("┗—————————————请 选 择 你 需 要 的 操 作————————————┛\n");

}

int main()

{

ook Bo;

lend Lin;

char BNum[20];

char CNum[20];

printf("-----------------------欢 迎 进 入 图 书 管 理 系 统!---------------------------\n\n");

int choice=10;

int SearchCho=10,ViewCho=10;

while(choice!=0)

{

Menu();//显示菜单

scanf(" %d",&choice);

switch(choice)

{

case 1://采编入库

printf("请输入入库的书的书号:");

scanf(" %s",BNum);

Buy(Bo,BNum);

case 2://清空库存

printf("请输入想要清除的书的书号:");

scanf(" %s",BNum);

Delete(Bo,BNum);

break;

case 3://借阅

printf("请输入想要借阅的书的书号:\n");

scanf(" %s",&BNum);

printf("请输入图书证号:");

scanf(" %s",&CNum);

Borrow(Bo,Lin,BNum,CNum);

break;

case 4://归还

printf("请输入想要归还的书的书号:\n");

scanf(" %s",&BNum);

printf("请输入图书证号:");

scanf(" %s",&CNum);

Return(Bo,Lin,BNum,CNum);

break;

case 5://查找//根据书号查找

printf("请输入书号:");//输入书号查找

scanf(" %s",&BNum);

SearchByNum(Bo,BNum);

break;

case 6://根据书名查找

SearchByName(Bo);

break;

case 7://根据作者查找

SearchByAuth(Bo);

break;

case 8://查看某图书证所借的所有书

ViewCard(Bo,Lin);

break;

case 9: //查看全部超期未还的书

ViewBook(Bo,Lin);

break;

case 0://退出系统

exit(0);break;

default:printf("输入错误!\n");exit(0);break;

}

}
</retotal;i++)
</retotal;i++)
</total;i++)
</total;i++)
</retotal;j++)
</retotal;k++)
</retotal;i++)

</total;j++)
</list_init_size;i++)
</maxsize;i++)

c语言猜数字游戏源代码

# include

# include

# include

main()

{

int a,b;

char c;

srand(time(NULL));

a=1+(rand()%1000);

printf("I have a number between 1 and 1000.\nCan you guess my number?\nPlease type your first guess.\n");

scanf("%d",&b);

while(b!=-1)

{

if(b==a)

{

printf("Excellent! You guessed the number!\nWould you like to play again(y or n)?");

scanf("%c",&c);

scanf("%c",&c);

switch(c){

case 'y':

printf("I have a number between 1 and 1000.\nCan you guess my number?\nPlease type your first guess.\n");

scanf("%d",&b);

break;

case 'n':

break;

}

}

while(b
<a)
{

printf("Too low.Try again.");

scanf("%d",&b);

}

while(b>a)

{

printf("Too high.Try again.");

scanf("%d",&b);

}

}

}

/*幸运52游戏 */

#include

void main()

{

int a,b,c;

char name[20];

printf("请输入您的姓名:\n");

scanf("%s",name);

printf("请设置玩家的游戏猜谜次数\n");

scanf("%d",&b);

printf("请设置猜谜的正确答案\n");

scanf("%d",&c);

printf("\n好了,游戏开始\n*****************************************\n请输入数字:\n");

scanf("%d",&a);

while(a!=c&&b>0)

{

if(a>c)

printf("大了\n");

else

printf("小了\n");

b--;

scanf("%d",&a);

}

if(a==c)

{

printf("\n*****************************************\n恭喜您过关了!\n玩家:%s\t",name);

}

else

printf("\n*****************************************\n游戏结束,大虾请重新来过\n");

getch();

}

#include

#include

#include

int EachDiff(int a[],int n)

{

int i,j;

for(i=0;i
<n;i++)
for(j=i+1;j
<n;j++)
if(a[i]==a[j])

return 0;

else

return 1;

}

int JudgeA(int a[],int b[],int n)

{

int i,result=0;

for(i=0;i
<n;i++)
{

if(a[i]==b[i]) result++;

}

return result;

}

int JudgeB(int a[],int b[],int n)

{

int i,j,result=0;

for(i=0;i
<n;i++)
for(j=0;j
<n;j++)
if(a[i]==b[j]&&i!=j)

return result;

}

void CreateNum(int a[],int n)

{

int i;

srand(time(0));

do

{

for(i=0;i
<n;i++)a[i]=rand()%10;
}while(!EachDiff(a,n));

}

int JudgeInput(int a[],int n)

{

int i;

if(!EachDiff(a,n))

return 0;

else

for(i=0;i
<n;i++)
if(a[i]>9||a[i]<0)

return 0;

else

return 1;

}

int main()

{

//system();

int a[4],b[4],i;

int fth=1;

printf("作者 Dante -- 谢煜东");

printf("\t\t 欢迎来到猜数字游戏\n\n");

printf(" 计算机想好了一个4位无重复数字,首位可以为零。\n 例如:0913是可以的,3502也是可以的,6787不可以。\n");

printf(" 现在您想办法把这个数字猜出来。\n\n");

printf(" 每猜一个数字,计算机会根据这个数字给出几A几B:\n 其中A前面的数字表示位置正确的数的个数,\n 而B前的数字表示数字正确而位置不对的数的个数。\n\n");

//printf(" 如正确答案为5234,而猜的人猜5346,则是1A2B。\n 其中有一个5的位置对了,记为1A;\n 而3和4这两个数字对了,而位置没对,因此记为2B;\n 合起来就是1A2B。\n\n");

printf(" 记住!1:你共有8次机会,2:输入的数字不能重复。\n\n");

printf(" 当出现\"第几次:\"字样并等待的时候,您就可以输入你要猜测的四位数字,\n 输入完之后回车确认。祝您开心\n\n 明白之后任意键游戏正式开始!");

getchar();

CreateNum(a,4);

system("cls");

printf("\t\t现在可以输入你要猜的四位数字了,输入之后回车确认。\n");

while(fth<=8)

{

int t=1000;

printf("第%d次: ",fth);

scanf("%d",amp;b[0]);

for(i=0;i<3;i++)

{

b[i+1]=b[i]%t;

b[i]=b[i]/t;

t/=10;

}

for(i=0;i<4;i++)

if(JudgeInput(b,4)==0)

{

printf("您的输入有问题,请重新输入\n");

continue;

}

if(JudgeA(a,b,4)==4)

{

printf("\t结果: 答对了!好聪明!");

system("pause");

//return;

}

printf("\t结果:您有%d个数字和位置都对了,有%d个数字对了而位置没对\n",JudgeA(a,b,4),JudgeB(a,b,4));

fth++;

}

printf("\n很遗憾。正确答案是:");

for(i=0;i<4;i++)

printf("%d",a[i]);

printf("下次再玩吧!88\n");

system("pause");

return 0;

}

小游戏2048:

#include

#include

#include

#include

#include

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 Color(int a) //设定字符颜色的函数(a应为1-15)

{ SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a); }

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 gb={1,0}; //以下两行是隐藏光标的设置,gb代指光标

SetConsoleCursorInfo( GetStdHandle(STD_OUTPUT_HANDLE), &gb );

Color(14); //设置字体淡黄色

printf("\n\n\t\t 2048小游戏"); Color(7); //恢复白字黑底

printf("\n\t┌──────┬──────┬──────┬──────┐");

printf("\n\t│ │ │ │ │");

printf("\n\t├──────┼──────┼──────┼──────┤");

printf("\n\t│ │ │ │ │");

printf("\n\t├──────┼──────┼──────┼──────┤");

printf("\n\t│ │ │ │ │");

printf("\n\t├──────┼──────┼──────┼──────┤");

printf("\n\t│ │ │ │ │");

printf("\n\t└──────┴──────┴──────┴──────┘");

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(" "); Color(7); printf("│");}

else if(a[i][j]<10){ if (a[i][j] == 2) { Color(14); }

else if (a[i][j] == 4) { Color(13); }

else if (a[i][j] == 8) { Color(12); }

printf(" %d ", a[i][j]); Color(7 ); printf("│");

}

else if (a[i][j] < 100){if (a[i][j] == 16) { Color(12); }

else if (a[i][j] == 32) { Color(10); }

else if (a[i][j] == 64) { Color(2 ); }

printf(" %d ", a[i][j]); Color(7); printf("│");

}

else if (a[i][j] < 1000) {if (a[i][j] == 128) { Color(9); }

else if (a[i][j] == 256) { Color(1); }

else if (a[i][j] == 512) { Color(13); }

printf(" %d ", a[i][j]); Color(7); printf("│");

}

else if (a[i][j] < 10000) {if (a[i][j] == 1024) { Color(5); }

else { Color(15); }

printf(" %d ", a[i][j]); Color(7); printf("│");

}

}

if (jsk( ) == 0)

{ yes( ); if (over) { gtxy(9,12); Color(10);

printf("\n\n 游戏结束!是否继续? [ 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 zb; //zb代指坐标

zb.X = x;

zb.Y = y;

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), zb);

}

阅读更多 >>>  PHP判断字符串中是否包含某字符

</a)

求C语言小程序源代码,300行左右

贪吃蛇游戏
#define N 200
#include

#include

#include

#define LEFT 0x4b00

#define RIGHT 0x4d00

#define DOWN 0x5000

#define UP 0x4800

#define ESC 0x011b

int i,key;

int score=0;/*得分*/

int gamespeed=50000;/*游戏速度自己调整*/

struct Food

{

int x;/*食物的横坐标*/

int y;/*食物的纵坐标*/

int yes;/*判断是否要出现食物的变量*/

}food;/*食物的结构体*/

struct Snake

{

int x[N];

int y[N];

int node;/*蛇的节数*/

int direction;/*蛇移动方向*/

int life;/* 蛇的生命,0活着,1死亡*/

}snake;

void Init(void);/*图形驱动*/

void Close(void);/*图形结束*/

void DrawK(void);/*开始画面*/

void GameOver(void);/*结束游戏*/

void GamePlay(void);/*玩游戏具体过程*/

void PrScore(void);/*输出成绩*/

/*主函数*/

void main(void)

{

Init();/*图形驱动*/

DrawK();/*开始画面*/

GamePlay();/*玩游戏具体过程*/

Close();/*图形结束*/

}

/*图形驱动*/

void Init(void)

{

int gd=DETECT,gm;

initgraph(&gd,&gm,"c:\\tc");

cleardevice();

}

/*开始画面,左上角坐标为(50,40),右下角坐标为(610,460)的围墙*/

void DrawK(void)

{

/*setbkcolor(LIGHTGREEN);*/

setcolor(11);

setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设置线型*/

for(i=50;i<=600;i+=10)/*画围墙*/

{

rectangle(i,40,i+10,49); /*上边*/

rectangle(i,451,i+10,460);/*下边*/

}

for(i=40;i<=450;i+=10)

{

rectangle(50,i,59,i+10); /*左边*/

rectangle(601,i,610,i+10);/*右边*/

}

}

/*玩游戏具体过程*/

void GamePlay(void)

{

randomize();/*随机数发生器*/

food.yes=1;/*1表示需要出现新食物,0表示已经存在食物*/

snake.life=0;/*活着*/

snake.direction=1;/*方向往右*/

snake.x[0]=100;snake.y[0]=100;/*蛇头*/

snake.x[1]=110;snake.y[1]=100;

snake.node=2;/*节数*/

PrScore();/*输出得分*/

while(1)/*可以重复玩游戏,压ESC键结束*/

{

while(!kbhit())/*在没有按键的情况下,蛇自己移动身体*/

{

if(food.yes==1)/*需要出现新食物*/

{

food.x=rand()%400+60;

food.y=rand()%350+60;

while(food.x%10!=0)/*食物随机出现后必须让食物能够在整格内,这样才可以让蛇吃到*/

food.x++;

while(food.y%10!=0)

food.y++;

food.yes=0;/*画面上有食物了*/

}

if(food.yes==0)/*画面上有食物了就要显示*/

{

setcolor(GREEN);

rectangle(food.x,food.y,food.x+10,food.y-10);

}

for(i=snake.node-1;i>0;i--)/*蛇的每个环节往前移动,也就是贪吃蛇的关键算法*/

{

snake.x[i]=snake.x[i-1];

snake.y[i]=snake.y[i-1];

}

/*1,2,3,4表示右,左,上,下四个方向,通过这个判断来移动蛇头*/

switch(snake.direction)

{

case 1:snake.x[0]+=10;break;

case 2: snake.x[0]-=10;break;

case 3: snake.y[0]-=10;break;

case 4: snake.y[0]+=10;break;

}

for(i=3;i
<snake.node;i++) *从蛇的第四节开始判断是否撞到自己了,因为蛇头为两节,第三节不可能拐过来*
{

if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0])

{

GameOver();/*显示失败*/

snake.life=1;

break;

}

}

if(snake.x[0]<55||snake.x[0]>595||snake.y[0]<55||

snake.y[0]>455)/*蛇是否撞到墙壁*/

{

GameOver();/*本次游戏结束*/

snake.life=1; /*蛇死*/

}

if(snake.life==1)/*以上两种判断以后,如果蛇死就跳出内循环,重新开始*/

break;

if(snake.x[0]==food.x&&snake.y[0]==food.y)/*吃到食物以后*/

{

setcolor(0);/*把画面上的食物东西去掉*/

rectangle(food.x,food.y,food.x+10,food.y-10);

snake.x[snake.node]=-20;snake.y[snake.node]=-20;

/*新的一节先放在看不见的位置,下次循环就取前一节的位置*/

snake.node++;/*蛇的身体长一节*/

food.yes=1;/*画面上需要出现新的食物*/

score+=10;

PrScore();/*输出新得分*/

}

setcolor(4);/*画出蛇*/

for(i=0;i
<snake.node;i++)
rectangle(snake.x[i],snake.y[i],snake.x[i]+10,

snake.y[i]-10);

delay(gamespeed);

setcolor(0);/*用黑色去除蛇的的最后一节*/

rectangle(snake.x[snake.node-1],snake.y[snake.node-1],

snake.x[snake.node-1]+10,snake.y[snake.node-1]-10);

} /*endwhile(!kbhit)*/

if(snake.life==1)/*如果蛇死就跳出循环*/

break;

key=bioskey(0);/*接收按键*/

if(key==ESC)/*按ESC键退出*/

break;

else

if(key==UP&&snake.direction!=4)

/*判断是否往相反的方向移动*/

snake.direction=3;

else

if(key==RIGHT&&snake.direction!=2)

snake.direction=1;

else

if(key==LEFT&&snake.direction!=1)

snake.direction=2;

else

if(key==DOWN&&snake.direction!=3)

snake.direction=4;

}/*endwhile(1)*/

}

/*游戏结束*/

void GameOver(void)

{

cleardevice();

PrScore();

setcolor(RED);

settextstyle(0,0,4);

outtextxy(200,200,"GAME OVER");

getch();

}

/*输出成绩*/

void PrScore(void)

{

char str[10];

setfillstyle(SOLID_FILL,YELLOW);

bar(50,15,220,35);

setcolor(6);

settextstyle(0,0,2);

sprintf(str,"score:%d",score);

outtextxy(55,20,str);

}

/*图形结束*/

void Close(void)

{

getch();

closegraph();

}

#include

#include

using namespace std;

int main()

{

int a=0,sheng=20,gong=10,fang=10,b,shengm=20,yao=0,smsxy=0,gong1,fang1;

int guais,guaig,qian=0,defen=0,c,fangc=1,sheng1;

int sjq,sjsm;

srand(time(0));

cout<<"勇者的成长"<
<endl;
cout<<"此游戏中禁止输入字符,否则会出错,后果自负!"<
<endl;
cout<<"按任意键开始游戏"<
<endl;
system("pause");

while(a==0) {

cout<<"1.勇者商店"<
<endl;
cout<<"2.讨伐魔物"<
<endl;
cout<<"3.角色资料"<
<endl;
cout<<"4.背包"<
<endl;
cout<<"请选择..."<
<endl;
cin>>b;

if(b==1) {

cout<<"1.装备"<
<endl;
cout<<"2.药品"<
<endl;
cout<<"其它.退出"<
<endl;
cout<
<endl;
cin>>b;

if(b==1) {

while(b==1&&b==2&&b==3) {

cout<<"1.武器"<
<endl;
cout<<"2.盾牌"<
<endl;
cout<<"3.盔甲"<
<endl;
cout<<"其它.退出"<
<endl;
cin>>b;

if(b==1) {

cout<<"1.骑士长剑(+10) 价值:20"<
<endl;
cout<<"2.石中剑(+20) 价值40"<
<endl;
cout<<"3.魔王的右手(+90) 价值150"<
<endl;
cout<<"其它.退出"<
<endl;
cout<<"当前拥有"<
<qian<<"个金币"<<endl;
cin>>b;

if(b==1&&qian>=20) {

gong=20;

qian-=20;

cout<<"自身攻击"<
<gong<<endl;
cout<<"当前拥有"<
<qian<<"个金币"<<endl;
}

if(b==2&&qian>=40) {

gong=30;

qian-=40;

cout<<"自身攻击"<
<gong<<endl;
cout<<"当前拥有"<
<qian<<"个金币"<<endl;
}

if(b==3&&qian>=150) {

gong=100;

qian-=150;

cout<<"自身攻击"<
<gong<<endl;
cout<<"当前拥有"<
<qian<<"个金币"<<endl;
}

}

if(b==2) {

cout<<"1.皇家盾牌(+10) 价值:20"<
<endl;
cout<<"2.永恒堡垒(+20) 价值40"<
<endl;
cout<<"3.魔王的左手(+90) 价值150"<
<endl;
cout<<"其它.退出"<
<endl;
cout<<"当前拥有"<
<qian<<"个金币"<<endl;
cin>>b;

if(b==1&&qian>=20) {

fang=20;

qian-=20;

cout<<"自身防御"<
<fang<<endl;
cout<<"当前拥有"<
<qian<<"个金币"<<endl;
} else if(b==1) cout<<"钱不够!"<
<endl;
if(b==2&&qian>=40) {

fang=30;

qian-=40;

cout<<"自身防御"<
<fang<<endl;
cout<<"当前拥有"<
<qian<<"个金币"<<endl;
} else if(b==2) cout<<"钱不够!"<
<endl;
if(b==3&&qian>=150) {

fang=100;

qian-=150;

cout<<"自身防御"<
<fang<<endl;
cout<<"当前拥有"<
<qian<<"个金币"<<endl;
} else if(b==3) cout<<"钱不够!"<
<endl;
}

if(b==3) {

cout<<"1.战争盔甲(+10) 价值:20"<
<endl;
cout<<"2.不灭龙甲(+20) 价值40"<
<endl;
cout<<"3.魔王的精华(+90) 价值150"<
<endl;
cout<<"其它.退出"<
<endl;
cout<<"当前拥有"<
<qian<<"个金币"<<endl;
cin>>b;

if(b==1&&qian>=20) {

shengm=20;

qian-=20;

cout<<"自身生命"<
<shengm<<endl;
cout<<"当前拥有"<
<qian<<"个金币"<<endl;
} else if(b==1) cout<<"钱不够!"<
<endl;
if(b==2&&qian>=40) {

shengm=30;

qian-=40;

cout<<"自身生命"<
<shengm<<endl;
cout<<"当前拥有"<
<qian<<"个金币"<<endl;
} else if(b==2) cout<<"钱不够!"<
<endl;
if(b==3&&qian>=150) {

shengm=100;

qian-=150;

cout<<"自身生命"<
<shengm<<endl;
cout<<"当前拥有"<
<qian<<"个金币"<<endl;
} else if(b==3) cout<<"钱不够!"<
<endl;
}

}

}

if(b==2) {

cout<<"1.快速回复(花费1)"<
<endl;
cout<<"2.恢复药剂*5(花费5)"<
<endl;
cout<<"3.生命上限药剂(随机)(花费15)"<
<endl;
cout<<"其它.退出"<
<endl;
cout<<"当前拥有"<
<qian<<"个金币"<<endl;
cin>>b;

if(b==1&&qian>=1) {

sheng=shengm;

qian--;

cout<<"自身生命"<
<sheng<<endl;
cout<<"当前拥有"<
<qian<<"个金币"<<endl;
} else if(b==1) cout<<"钱不够!"<
<endl;
if(b==2&&qian>=5) {

yao+=5;

qian-=5;

cout<<"恢复药剂数量剩余"<
<yao<<endl;
cout<<"当前拥有"<
<qian<<"个金币"<<endl;
} else if(b==2)cout<<"钱不够!"<
<endl;
if(b==3&&qian>=15) {

smsxy++;

qian-=15;

cout<<"生命上限药剂剩余"<
<smsxy<<endl;
cout<<"当前拥有"<
<qian<<"个金币"<<endl;
} else if(b==3)cout<<"钱不够!"<
<endl;
}

} else if(b==2) {

cout<<"1.小怪"<
<endl;
cout<<"2.精英怪"<
<endl;
cout<<"3.大魔王"<
<endl;
cout<<"其它.退出"<
<endl;
cin>>b;

if(b==1) {

fangc=1;

guais=rand()%20+10;

c=5;

cout<<"怪物生命("<
<guais<<" "<<guais<<")"<<endl;
cout<<"自身生命("<
<sheng<<' '<<shengm<<")"<<endl;
while(guais>0&&sheng>0) {

guaig=rand()%2+5;

cout<<"1.攻击"<
<endl;
cout<<"2.防御(次数"<
<c<<")"<<endl;
cout<<"3.回复(闪避+使用药品回复)"<
<endl;
cin>>b;

if(b==1) {

fangc=1;

printf("你与怪兽进行了激烈的打斗");

for(int i=1; i<=6; i++) {

printf(".");

Sleep(250);

}

gong1=guais;

guais-=gong;

if(guais<=0) {

guais=0;

cout<<"\n怪物生命-"<
<gong1<<"=0"<<endl;
} else {

sheng=sheng-guaig;

cout<<"\n怪物生命-"<
<gong<<"="<<guais<<endl;
cout<<"自身生命-"<
<guaig<<"="<<sheng<<endl;
}

}

if(b==2&&c!=0) {

if(fangc==2) cout<<"进攻是最好的防守!"<
<endl;
else {

if(fang>guaig) {

fang1=guais;

guais=guais-(fang-guaig);

if(guais<0) cout<<"怪物生命-"<
<fang1<<"=0"<<endl;
else cout<<"怪物生命-"<<(fang-guaig)<<"="<
<guais<<endl;
cout<<"(连续防御上限"<
<fangc<<" 1)"<<endl;
} else {

fang1=sheng;

sheng=sheng-(guaig-fang);

if(sheng<0) cout<<"自身生命-"<
<fang1<<"=0"<<endl;
else cout<<"自身生命-"<<(guaig-fang)<<"="<
<sheng<<endl;
cout<<"(连续防御上限"<
<fangc<<" 1)"<<endl;
}

fangc++;

c--;

}

} else if(b==2) cout<<"你已筋疲力竭,无法防御"<
<endl;
if(b==3) {

printf("1.使用恢复药剂(剩余%d)\n",yao);

printf("2.使用生命上限药剂(剩余%d)\n",smsxy);

printf("其它.退出\n");

cin>>b;

if(b==1&&yao>0) {

yao--;

sheng1=shengm-sheng;

sheng+=20;

if(sheng>shengm) {

sheng=shengm;

cout<<"自身生命+"<
<sheng1<<"("<<shengm<<")"<<endl;
} else cout<<"自身生命+20("<
<sheng<<")"<<endl;
} else if(b==1) printf("没药了!\n");

else if(b==2&&smsxy>0) {

smsxy--;

sjsm=rand()%10+10;

shengm+=sjsm;

sheng+=sjsm;

cout<<"生命上限+"<
<sjsm<<"("<<shengm<<")"<<endl;
cout<<"自身生命+"<
<sjsm<<"("<<sheng<<")"<<endl;
} else if(b==2) printf("没药了!\n");

}

if(sheng<=0) {

cout<<"你死了"<
<endl;
break;

}

}

if(sheng>0) {

sjq=rand()%4+1;

qian=qian+sjq;

cout<<"金币+"<
<sjq<<"("<<qian<<")"<<endl;
defen+=sjq;

}

} else if(b==2&&gong>=20&&shengm>=60&&sheng==shengm) {

fangc=1;

guais=rand()%50+50;

c=7;

cout<<"怪物生命("<
<guais<<" "<<guais<<")"<<endl;
cout<<"自身生命("<
<sheng<<' '<<shengm<<")"<<endl;
while(guais>0&&sheng>0) {

guaig=rand()%20+20;

cout<<"1.攻击"<
<endl;
cout<<"2.防御(次数"<
<c<<")"<<endl;
cout<<"3.回复(闪避)"<
<endl;
cin>>b;

if(b==1) {

fangc=1;

printf("你与怪兽进行了激烈的打斗");

for(int i=1; i<=6; i++) {

printf(".");

Sleep(250);

}

gong1=guais;

guais-=gong;

if(guais<=0) {

guais=0;

cout<<"\n怪物生命-"<
<gong1<<"=0"<<endl;
} else {

sheng=sheng-guaig;

cout<<"\n怪物生命-"<
<gong<<"="<<guais<<endl;
cout<<"自身生命-"<
<guaig<<"="<<sheng<<endl;
}

}

if(b==2&&c!=0) {

if(fangc==4) cout<<"进攻是最好的防守!"<
<endl;
else {

if(fang>guaig) {

fang1=guais;

guais=guais-(fang-guaig);

if(guais<0) cout<<"怪物生命-"<
<fang1<<"=0"<<endl;
else cout<<"怪物生命-"<<(fang-guaig)<<"="<
<guais<<endl;
cout<<"(连续防御上限"<
<fangc<<" 3)"<<endl;
} else {

fang1=sheng;

sheng=sheng-(guaig-fang);

if(sheng<0) cout<<"自身生命-"<
<fang1<<"=0"<<endl;
else cout<<"自身生命-"<<(guaig-fang)<<"="<
<sheng<<endl;
cout<<"(连续防御上限"<
<fangc<<" 3)"<<endl;
}

fangc++;

c--;

}

} else if(b==2) cout<<"你已筋疲力竭,无法防御"<
<endl;
if(b==3) {

printf("1.使用恢复药剂(剩余%d)\n",yao);

printf("2.使用生命上限药剂(剩余%d)\n",smsxy);

printf("其它.退出\n");

cin>>b;

if(b==1&&yao>0) {

yao--;

sheng1=shengm-sheng;

sheng+=20;

if(sheng>shengm) {

sheng=shengm;

cout<<"自身生命+"<
<sheng1<<"("<<shengm<<")"<<endl;
} else cout<<"自身生命+20("<
<sheng<<")"<<endl;
} else if(b==1) printf("没药了!\n");

else if(b==2&&smsxy>0) {

smsxy--;

sjsm=rand()%10+10;

shengm+=sjsm;

sheng+=sjsm;

cout<<"生命上限+"<
<sjsm<<"("<<shengm<<")"<<endl;
cout<<"自身生命+"<
<sjsm<<"("<<sheng<<")"<<endl;
} else if(b==2) printf("没药了!\n");

}

if(sheng<=0) {

cout<<"你死了"<
<endl;
break;

}

}

if(sheng>0) {

sjq=rand()%8+7;

qian+=sjq;

cout<<"金币+"<
<sjq<<"("<<qian<<")"<<endl;
defen+=sjq;

}

} else if(b==2) {

cout<<"你的能力不够,还不能挑战它,快去讨伐低级一些的魔物,增加你的能力后再来吧!"<
<endl;
cout<<"解锁条件:攻击:"<
<gong<<" 20 生命上限:"<<shengm<<" 60 生命:"<<sheng<<" "<<shengm<<endl;
} else if(b==3&&gong>=50&&shengm>=150&&sheng==shengm) {

fangc=1;

guais=rand()%100+100;

c=15;

cout<<"怪物生命("<
<guais<<" "<<guais<<")"<<endl;
cout<<"自身生命("<
<sheng<<' '<<shengm<<")"<<endl;
while(guais>0&&sheng>0) {

guaig=rand()%50+50;

cout<<"1.攻击"<
<endl;
cout<<"2.防御(次数"<
<c<<")"<<endl;
cout<<"3.回复(闪避)"<
<endl;
cin>>b;

if(b==1) {

fangc=1;

printf("你与怪兽进行了激烈的打斗");

for(int i=1; i<=6; i++) {

printf(".");

Sleep(250);

}

gong1=guais;

guais-=gong;

if(guais<=0) {

guais=0;

cout<<"\n怪物生命-"<
<gong1<<"=0"<<endl;
} else {

sheng=sheng-guaig;

cout<<"\n怪物生命-"<
<gong<<"="<<guais<<endl;
cout<<"自身生命-"<
<guaig<<"="<<sheng<<endl;
}

}

if(b==2&&c!=0) {

if(fangc==6) cout<<"进攻是最好的防守!"<
<endl;
else {

if(fang>guaig) {

fang1=guais;

guais=guais-(fang-guaig);

if(guais<0) cout<<"怪物生命-"<
<fang1<<"=0"<<endl;
else cout<<"怪物生命-"<<(fang-guaig)<<"="<
<guais<<endl;
cout<<"(连续防御上限"<
<fangc<<" 5)"<<endl;
} else {

fang1=sheng;

sheng=sheng-(guaig-fang);

if(sheng<0) cout<<"自身生命-"<
<fang1<<"=0"<<endl;
else cout<<"自身生命-"<<(guaig-fang)<<"="<
<sheng<<endl;
cout<<"(连续防御上限"<
<fangc<<" 5)"<<endl;
}

fangc++;

c--;

}

} else if(b==2) cout<<"你已筋疲力竭,无法防御"<
<endl;
if(b==3) {

printf("1.使用恢复药剂(剩余%d)\n",yao);

printf("2.使用生命上限药剂(剩余%d)\n",smsxy);

printf("其它.退出\n");

cin>>b;

if(b==1&&yao>0) {

yao--;

sheng1=shengm-sheng;

sheng+=20;

if(sheng>shengm) {

sheng=shengm;

cout<<"自身生命+"<
<sheng1<<"("<<shengm<<")"<<endl;
} else cout<<"自身生命+20("<
<sheng<<")"<<endl;
} else if(b==1) printf("没药了!\n");

else if(b==2&&smsxy>0) {

smsxy--;

sjsm=rand()%10+10;

shengm+=sjsm;

sheng+=sjsm;

cout<<"生命上限+"<
<sjsm<<"("<<shengm<<")"<<endl;
cout<<"自身生命+"<
<sjsm<<"("<<sheng<<")"<<endl;
} else if(b==2) printf("没药了!\n");

}

if(sheng<=0) {

cout<<"你死了"<
<endl;
break;

}

}

if(sheng>0) {

sjq=rand()%45+75;

qian+=sjq;

cout<<"金币+"<
<sjq<<"("<<qian<<")"<<endl;
defen+=sjq;

}

} else if(b==3) {

cout<<"你的能力不够,还不能挑战它,快去讨伐低级一些的魔物,增加你的能力后再来吧!"<
<endl;
cout<<"解锁条件:攻击:"<
<gong<<" 50 生命上限:"<<shengm<<" 150 生命:"<<sheng<<" "<<shengm<<endl;
}

} else if(b==3) {

printf("请稍后");

for(int i=1; i<=6; i++) {

printf(".");

Sleep(500);

}

printf("\n自身资料\n");

printf("----------------------------------------------\n");

printf("生命上限:%d\n",shengm);

printf("生命:%d\n",sheng);

printf("攻击:%d\n",gong);

printf("防御:%d\n",fang);

} else if(b==4) {

printf("请稍后");

for(int i=1; i<=6; i++) {

printf(".");

Sleep(500);

}

printf("\n金币:%d\n",qian);

printf("恢复药剂:%d\n",yao);

printf("生命上限药剂(随机):%d\n",smsxy);

printf("1.使用恢复药剂\n");

printf("2.使用生命上限药剂\n");

printf("其它.退出\n");

cin>>b;

if(b==1&&yao>0) {

yao--;

sheng+=20;

if(sheng>shengm) sheng=shengm;

cout<<"自身生命+20("<
<sheng<<")"<<endl;
} else if(b==1) printf("没药了!\n");

else if(b==2&&smsxy>0) {

smsxy--;

sjsm=rand()%10+10;

shengm+=sjsm;

sheng+=sjsm;

cout<<"生命上限+"<
<sjsm<<"("<<shengm<<")"<<endl;
cout<<"自身生命+"<
<sjsm<<"("<<sheng<<")"<<endl;
} else if(b==2) printf("没药了!\n");

}

if(sheng==0&&qian==0&&yao==0) {

cout<<"你一无所有,彻彻底底地死了!"<
<endl;
cout<<"游戏结束"<
<endl;
cout<<"得分:"<
<defen<<endl;
return 0;

}

}

return 0;

}

嗯,那就给你一个我自己编写的科学计算器代码吧,不懂Q我:281754179

#include

阅读更多 >>>  delay函数,C语言 delay啥意思?

#include

#include

#include

#define Esc 27

#define Tab 9

void needle(char* s,char* carriage,int start)//needle意为“用针缝”

{

int size_carriage=(int)strlen(carriage);

int i,j;

for(j=0;j
<size_carriage;j++)
{

for(i=(int)strlen(s);i>=start;i--)

s[i+1]=s[i];

s[i+1]=carriage[j];

start=i+2;

}

}

double factorial(double d)//factorial意为“阶乘”

{

return d==0?1:d*factorial(d-1);

}

void handle(char* carriage)//handle意为“处理”

{

void find_start(char*,int*);

char* save1,*save2,ch;

char op[111];

double d1,d2;

int start,i;

find_start(carriage,&start);

ch=carriage[start];

d1=strtod(carriage,&save1);//strtod是库函数,功能是将字符串carriage中出现的第一个浮点数转化为double,并将剩余字符储存在save1中

if(ch=='!')

{

sprintf(op,"%g",factorial(d1));//springf是库函数,功能是将显示在屏幕上的内容储存在op中

strcpy(carriage,op);

return;

}

for(i=0;i<(int)strlen(save1);i++)//对于第一个不是'+'或'-'或数字的字符串,strtod无法作用。所以得去掉诸如"*22"字符串中的'*'

save1[i]=save1[i+1];

d2=strtod(save1,&save2);

switch(ch)

{

case '*':sprintf(op,"%.32g",d1*d2);break;

case '/':sprintf(op,"%.32g",d1/d2);break;

case '+':sprintf(op,"%.16g",d1+d2);break;

case '-':sprintf(op,"%.16g",d1-d2);

}

strcpy(carriage,op);

}

void delete(char* s,int start,int end)//delete意为“删除”

{

int i,j;

int size=(int)strlen(s);

for(i=end;i>=start;i--)

for(j=i;j
<size;j++)
s[j]=s[j+1];

}

void copy(char* s,char* carriage,int start,int end)//copy意为“复制”

{

int i;

for(i=0;start<=end;i++,start++)

carriage[i]=s[start];

carriage[i]='\0';

}

void scissor(char* s,char* carriage,int* start)//scissor意为“用剪刀剪”

{

int sta,end;

for(sta=*start-1;(s[sta]>='0'&&s[sta]<='9')||s[sta]=='.';sta--);

if(sta!=0||s[*start]=='!') //处理式子是-2+3或-2!的特殊情况

sta++;

if(s[*start]=='!')//'!'是单目运算符

end=*start;

else

{

for(end=*start+1;(s[end]>='0'&&s[end]<='9')||s[end]=='.';end++);

if((s[end-1]=='*'||s[end-1]=='/')&&(s[end]=='+'||s[end]=='-'))//处理式子是2*-2等的特殊情况

for(end++;(s[end]>='0'&&s[end]<='9')||s[end]=='.';end++);

end--;

}

copy(s,carriage,sta,end);

delete(s,sta,end);

*start=sta;//记住等下针线函数needle要开始缝的地方

}

void find_start(char* s,int* start)//find_start意为“找到操作符号开始处”

{

int i;

int size=(int)strlen(s);

//由优先级决定从上而下的顺序

for(i=0;i
<size;i++)
if(s[i]=='!')

{

*start=i;

return;

}

for(i=0;i
<size;i++)
if(s[i]=='*'||s[i]=='/')

{

*start=i;

return;

}

if(s[0]=='+'||s[0]=='-')

{

for(*start=1;(s[*start]>='0'&&s[*start]<='9')||s[*start]=='.';(*start)++);

return;

}

for(i=0;i
<size;i++)
if(s[i]=='+'||s[i]=='-')

{

*start=i;

return;

}

}

int judge(char* s)//judge意为“判断”

{

int i;

int size=(int)strlen(s);

for(i=1;i
<size;i++)
if(s[i]=='+'||s[i]=='-'||s[i]=='*'||s[i]=='/'||s[i]=='!')

return 1;

return 0;

}

void count(char* s)//count意为“计算”

{

int start,i;

char carriage[555];//carriage意为“运载体”

while(judge(s))//判断式子是否还需要进行运算

{

for(i=0;i<(int)strlen(s);i++)//此循环作用是将式子中出现的'--'替换为'+'

{

for(;s[i]!='-'&&i<(int)strlen(s);i++);

if(s[i+1]=='-')

{

delete(s,i,i+1);

needle(s,"+",i);

}

}

find_start(s,&start);//让下标start指向式子应该最先开始处理的运算符

scissor(s,carriage,&start);//用剪刀scissor将start指向的运算符及相对应的操作数剪下并储存在运载体carriage上

handle(carriage);//处理该运载体,并将运载体上运载的式子的计算结果储存在运载体上

needle(s,carriage,start);//见函数simplify中的说明

}

}

void simplify(char* s)//simplify意为“简化”

{

char carriage[555];//carriage意为“运载体”

int start,end,i;

int size=(int)strlen(s);

while(1)

{

for(i=0;s[i]!='('&&i
<size;i++);
if(i==size)

break;//说明式子已不含括号

for(end=0;s[end]!=')';end++);//使end下标指向式子中第一个出现')'的地方

end--;

for(start=end;s[start]!='(';start--);//寻找与上面一个')'配对的'('

start++;

copy(s,carriage,start,end);//将括号里的内容复制给运载体carriage

delete(s,start-1,end+1);//删除整个括号及其里面的内容

count(carriage);//计算运载体运载的表达式,运算结果储存在运载体上

needle(s,carriage,start-1);//将运载体运载过来的结果用针线needle缝在刚才删除式子s括号及其内容的地方

}

}

int main()

{

int i=0;

char s[555],ch;

puts(" 本程序不对用户输入数据进行检测:");

puts(" 即用户应输入规范的计算式,包括分母不能为0:");

puts(" 式子不能含有空格及其他非计算字符;");

puts(" 按任意一个键开始,按回车键显示运算结果;");

while(1)

{

i++;

ch=getch();

if(Esc==ch)

break;

if(Tab==ch)

{

system("cls");//清除当前屏幕

puts("显示运算结果后:按“Esc”键退出,按“Tab”键清除当前屏幕");

}

if(i==1)

{

system("cls");

puts("显示运算结果后:按“Esc”键退出,按“Tab”键清除当前屏幕");

}

puts("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");

gets(s);

simplify(s);

count(s);

puts(s);

//实验数据:23.243*(5!-23.123/.133+(2!-13/13.23)*(2!-.235)-((4!-20)!/2!)-32*(3!+2.23/(2*3)!))

//其正确结果是:-5953.9401265774754346138009

}

puts("谢谢使用!");

getch();

return 0;

}

黑白棋游戏

#include "graphics.h" /*图形系统头文件*/

#define LEFT 0x4b00 /*光标左键值*/

#define RIGHT 0x4d00 /*光标右键值*/

#define DOWN 0x5000 /*光标下键值*/

#define UP 0x4800 /*光标上键值*/

#define ESC 0x011b /* ESC键值*/

#define ENTER 0x1c0d /* 回车键值*/

int a[8][8]={0},key,score1,score2;/*具体分数以及按键与存放棋子的变量*/

char playone[3],playtwo[3];/*两个人的得分转换成字符串输出*/

void playtoplay(void);/*人人对战函数*/

void DrawQp(void);/*画棋盘函数*/

void SetPlayColor(int x);/*设置棋子第一次的颜色*/

void MoveColor(int x,int y);/*恢复原来棋盘状态*/

int QpChange(int x,int y,int z);/*判断棋盘的变化*/

void DoScore(void);/*处理分数*/

void PrintScore(int n);/*输出成绩*/

void playWin(void);/*输出胜利者信息*/

/******主函数*********/

void main(void)

{

int gd=DETECT,gr;

initgraph(&gd,&gr,"c:\\tc"); /*初始化图形系统*/

DrawQp();/*画棋盘*/

playtoplay();/*人人对战*/

getch();

closegraph();/*关闭图形系统*/

}

void DrawQp()/*画棋盘*/

{

int i,j;

score1=score2=0;/*棋手一开始得分都为0*/

setbkcolor(BLUE);

for(i=100;i<=420;i+=40)

{

line(100,i,420,i);/*画水平线*/

line(i,100,i,420); /*画垂直线*/

}

setcolor(0);/*取消圆周围的一圈东西*/

setfillstyle(SOLID_FILL,15);/*白色实体填充模式*/

fillellipse(500,200,15,15); /*在显示得分的位置画棋*/

setfillstyle(SOLID_FILL,8); /*黑色实体填充模式*/

fillellipse(500,300,15,15);

a[3][3]=a[4][4]=1;/*初始两个黑棋*/

a[3][4]=a[4][3]=2;/*初始两个白棋*/

setfillstyle(SOLID_FILL,WHITE);

fillellipse(120+3*40,120+3*40,15,15);

fillellipse(120+4*40,120+4*40,15,15);

setfillstyle(SOLID_FILL,8);

fillellipse(120+3*40,120+4*40,15,15);

fillellipse(120+4*40,120+3*40,15,15);

score1=score2=2; /*有棋后改变分数*/

DoScore();/*输出开始分数*/

}

void playtoplay()/*人人对战*/

{

int x,y,t=1,i,j,cc=0;

while(1)/*换棋手走棋*/

{

x=120,y=80;/*每次棋子一开始出来的坐标,x为行坐标,y为列坐标*/

while(1) /*具体一个棋手走棋的过程*/

{

PrintScore(1);/*输出棋手1的成绩*/

PrintScore(2);/*输出棋手2的成绩*/

SetPlayColor(t);/*t变量是用来判断棋手所执棋子的颜色*/

fillellipse(x,y,15,15);

key=bioskey(0);/*接收按键*/

if(key==ESC)/*跳出游戏*/

break;

else

if(key==ENTER)/*如果按键确定就可以跳出循环*/

{

if(y!=80&&a[(x-120)/40][(y-120)/40]!=1

&&a[(x-120)/40][(y-120)/40]!=2)/*如果落子位置没有棋子*/

{

if(t%2==1)/*如果是棋手1移动*/

a[(x-120)/40][(y-120)/40]=1;

else/*否则棋手2移动*/

a[(x-120)/40][(y-120)/40]=2;

if(!QpChange(x,y,t))/*落子后判断棋盘的变化*/

{

a[(x-120)/40][(y-120)/40]=0;/*恢复空格状态*/

cc++;/*开始统计尝试次数*/

if(cc>=64-score1-score2) /*如果尝试超过空格数则停步*/

{

MoveColor(x,y);

fillellipse(x,y,15,15);

break;

}

else

continue;/*如果按键无效*/

}

DoScore();/*分数的改变*/

break;/*棋盘变化了,则轮对方走棋*/

}

else/*已经有棋子就继续按键*/

continue;

}

else /*四个方向按键的判断*/

if(key==LEFT&&x>120)/*左方向键*/

{

MoveColor(x,y);

fillellipse(x,y,15,15);

SetPlayColor(t);

x-=40;

fillellipse(x,y,15,15);

}

else

if(key==RIGHT&&x<400&&y>80)/*右方向键*/

{

MoveColor(x,y);

fillellipse(x,y,15,15);

SetPlayColor(t);

x+=40;

fillellipse(x,y,15,15);

}

else

if(key==UP&&y>120)/*上方向键*/

{

MoveColor(x,y);

fillellipse(x,y,15,15);

SetPlayColor(t);

y-=40;

fillellipse(x,y,15,15);

}

else

if(key==DOWN&&y<400)/*下方向键*/

{

MoveColor(x,y);

fillellipse(x,y,15,15);

SetPlayColor(t);

y+=40;

fillellipse(x,y,15,15);

}

}

if(key==ESC)/*结束游戏*/

break;

if((score1+score2)==64||score1==0||score2==0)/*格子已经占满或一方棋子为0判断胜负*/

{

playWin();/*输出最后结果*/

break;

}

t=t%2+1; /*一方走后,改变棋子颜色即轮对方走*/

cc=0; /*计数值恢复为0*/

} /*endwhile*/

}

void SetPlayColor(int t)/*设置棋子颜色*/

{

if(t%2==1)

setfillstyle(SOLID_FILL,15);/*白色*/

else

setfillstyle(SOLID_FILL,8);/*灰色*/

}

void MoveColor(int x,int y)/*走了一步后恢复原来格子的状态*/

{

if(y<100)/*如果是从起点出发就恢复蓝色*/

setfillstyle(SOLID_FILL,BLUE);

else/*其他情况如果是1就恢复白色棋子,2恢复黑色棋子,或恢复蓝色棋盘*/

switch(a[(x-120)/40][(y-120)/40])

{

case 1:

setfillstyle(SOLID_FILL,15);break; /*白色*/

case 2:

setfillstyle(SOLID_FILL,8);break; /*黑色*/

default:

setfillstyle(SOLID_FILL,BLUE); /*蓝色*/

}

}

int QpChange(int x,int y,int t)/*判断棋盘的变化*/

{

int i,j,k,kk,ii,jj,yes;

yes=0;

i=(x-120)/40; /*计算数组元素的行下标*/

j=(y-120)/40; /*计算数组元素的列下标*/

SetPlayColor(t);/*设置棋子变化的颜色*/

/*开始往8个方向判断变化*/

if(j<6)/*往右边*/

{

for(k=j+1;k<8;k++)

if(a[i][k]==a[i][j]||a[i][k]==0)/*遇到自己的棋子或空格结束*/

break;

if(a[i][k]!=0&&k<8)

{

for(kk=j+1;kk
<k&&k<8;kk++) *判断右边*
{

a[i][kk]=a[i][j]; /*改变棋子颜色*/

fillellipse(120+i*40,120+kk*40,15,15);

}

if(kk!=j+1) /*条件成立则有棋子改变过颜色*/

yes=1;

}

}

if(j>1)/*判断左边*/

{

for(k=j-1;k>=0;k--)

if(a[i][k]==a[i][j]||!a[i][k])

break;

if(a[i][k]!=0&&k>=0)

{

for(kk=j-1;kk>k&&k>=0;kk--)

{

a[i][kk]=a[i][j];

fillellipse(120+i*40,120+kk*40,15,15);

}

if(kk!=j-1)

yes=1;

}

}

if(i<6)/*判断下边*/

{

for(k=i+1;k<8;k++)

if(a[k][j]==a[i][j]||!a[k][j])

break;

if(a[k][j]!=0&&k<8)

{

for(kk=i+1;kk
<k&&k<8;kk++)
{

a[kk][j]=a[i][j];

fillellipse(120+kk*40,120+j*40,15,15);

}

if(kk!=i+1)

yes=1;

}

}

if(i>1)/*判断上边*/

{

for(k=i-1;k>=0;k--)

if(a[k][j]==a[i][j]||!a[k][j])

break;

if(a[k][j]!=0&&k>=0)

{

for(kk=i-1;kk>k&&k>=0;kk--)

{

a[kk][j]=a[i][j];

fillellipse(120+kk*40,120+j*40,15,15);

}

if(kk!=i-1)

yes=1;

}

}

if(i>1&&j<6)/*右上*/

{

for(k=i-1,kk=j+1;k>=0&&kk<8;k--,kk++)

if(a[k][kk]==a[i][j]||!a[k][kk])

break;

if(a[k][kk]&&k>=0&&kk<8)

{

for(ii=i-1,jj=j+1;ii>k&&k>=0;ii--,jj++)

{

a[ii][jj]=a[i][j];

fillellipse(120+ii*40,120+jj*40,15,15);

}

if(ii!=i-1)

yes=1;

}

}

if(i<6&&j>1)/*左下*/

{

for(k=i+1,kk=j-1;k<8&&kk>=0;k++,kk--)

if(a[k][kk]==a[i][j]||!a[k][kk])

break;

if(a[k][kk]!=0&&k<8&&kk>=0)

{

for(ii=i+1,jj=j-1;ii
<k&&k<8;ii++,jj--)
{

a[ii][jj]=a[i][j];

fillellipse(120+ii*40,120+jj*40,15,15);

}

if(ii!=i+1)

yes=1;

}

}

if(i>1&&j>1)/*左上*/

{

for(k=i-1,kk=j-1;k>=0&&kk>=0;k--,kk--)

if(a[k][kk]==a[i][j]||!a[k][kk])

break;

if(a[k][kk]!=0&&k>=0&&kk>=0)

{

for(ii=i-1,jj=j-1;ii>k&&k>=0;ii--,jj--)

{

a[ii][jj]=a[i][j];

fillellipse(120+ii*40,120+jj*40,15,15);

}

if(ii!=i-1)

yes=1;

}

}

if(i<6&&j<6)/* 右下*/

{

for(k=i+1,kk=j+1;kk<8&&kk<8;k++,kk++)

if(a[k][kk]==a[i][j]||!a[k][kk])

break;

if(a[k][kk]!=0&&kk<8&&k<8)

{

for(ii=i+1,jj=j+1;ii
<k&&k<8;ii++,jj++)
{

a[ii][jj]=a[i][j];

fillellipse(120+ii*40,120+jj*40,15,15);

}

if(ii!=i+1)

yes=1;

}

}

return yes;/*返回是否改变过棋子颜色的标记*/

}

void DoScore()/*处理分数*/

{

int i,j;

score1=score2=0;/*重新开始计分数*/

for(i=0;i<8;i++)

for(j=0;j<8;j++)

if(a[i][j]==1)/*分别统计两个人的分数*/

score1++;

else

if(a[i][j]==2)

score2++;

}

void PrintScore(int playnum)/*输出成绩*/

{

if(playnum==1)/*清除以前的成绩*/

{

setfillstyle(SOLID_FILL,BLUE);

bar(550,100,640,400);

}

setcolor(RED);

settextstyle(0,0,4);/*设置文本输出样式*/

if(playnum==1)/*判断输出哪个棋手的分,在不同的位置输出*/

{

sprintf(playone,"%d",score1);

outtextxy(550,200,playone);

}

else

{

sprintf(playtwo,"%d",score2);

outtextxy(550,300,playtwo);

}

setcolor(0);

}

void playWin()/*输出最后的胜利者结果*/

{

settextstyle(0,0,4);

setcolor(12);

if(score2>score1)/*开始判断最后的结果*/

outtextxy(100,50,"black win!");

else

if(score2
<score1)
outtextxy(100,50,"white win!");

else

outtextxy(60,50,"you all win!");

}

五子棋游戏

/*五子棋*/

#include

#include

#include

#include

#include

#define LEFT 0x4b00

#define RIGHT 0x4d00

#define DOWN 0x5000

#define UP 0x4800

#define ESC 0x011b

#define SPACE 0x3920

#define BILI 20

#define JZ 4

#define JS 3

#define N 19

int box[N][N];

int step_x,step_y ;

int key ;

int flag=1 ;

void draw_box();

void draw_cicle(int x,int y,int color);

void change();

void judgewho(int x,int y);

void judgekey();

int judgeresult(int x,int y);

void attentoin();

void attention()

{

char ch ;

window(1,1,80,25);

textbackground(LIGHTBLUE);

textcolor(YELLOW);

clrscr();

gotoxy(15,2);

printf("游戏操作规则:");

gotoxy(15,4);

printf("Play Rules:");

gotoxy(15,6);

printf("1、按左右上下方向键移动棋子");

gotoxy(15,8);

printf("1. Press Left,Right,Up,Down Key to move Piece");

gotoxy(15,10);

printf("2、按空格确定落棋子");

gotoxy(15,12);

printf("2. Press Space to place the Piece");

gotoxy(15,14);

printf("3、禁止在棋盘外按空格");

gotoxy(15,16);

printf("3. DO NOT press Space outside of the chessboard");

gotoxy(15,18);

printf("你是否接受上述的游戏规则(Y/N)");

gotoxy(15,20);

printf("Do you accept the above Playing Rules? [Y/N]:");

while(1)

{

gotoxy(60,20);

ch=getche();

if(ch=='Y'||ch=='y')

break ;

else if(ch=='N'||ch=='n')

{

window(1,1,80,25);

textbackground(BLACK);

textcolor(LIGHTGRAY);

clrscr();

exit(0);

}

gotoxy(51,12);

printf(" ");

}

}

void draw_box()

{

int x1,x2,y1,y2 ;

setbkcolor(LIGHTBLUE);

setcolor(YELLOW);

gotoxy(7,2);

printf("Left, Right, Up, Down KEY to move, Space to put, ESC-quit.");

for(x1=1,y1=1,y2=18;x1<=18;x1++)

line((x1+JZ)*BILI,(y1+JS)*BILI,(x1+JZ)*BILI,(y2+JS)*BILI);

for(x1=1,y1=1,x2=18;y1<=18;y1++)

line((x1+JZ)*BILI,(y1+JS)*BILI,(x2+JZ)*BILI,(y1+JS)*BILI);

for(x1=1;x1<=18;x1++)

for(y1=1;y1<=18;y1++)

box[x1][y1]=0 ;

}

void draw_circle(int x,int y,int color)

{

setcolor(color);

setlinestyle(SOLID_LINE,0,1);

x=(x+JZ)*BILI ;

y=(y+JS)*BILI ;

circle(x,y,8);

}

void judgekey()

{

int i ;

int j ;

switch(key)

{

case LEFT :

if(step_x-1<0)

break ;

else

{

for(i=step_x-1,j=step_y;i>=1;i--)

if(box[i][j]==0)

{

draw_circle(step_x,step_y,LIGHTBLUE);

break ;

}

if(i<1)break ;

step_x=i ;

judgewho(step_x,step_y);

break ;

}

case RIGHT :

if(step_x+1>18)

break ;

else

{

for(i=step_x+1,j=step_y;i<=18;i++)

if(box[i][j]==0)

{

draw_circle(step_x,step_y,LIGHTBLUE);

break ;

}

if(i>18)break ;

step_x=i ;

judgewho(step_x,step_y);

break ;

}

case DOWN :

if((step_y+1)>18)

break ;

else

{

for(i=step_x,j=step_y+1;j<=18;j++)

if(box[i][j]==0)

{

draw_circle(step_x,step_y,LIGHTBLUE);

break ;

}

if(j>18)break ;

step_y=j ;

judgewho(step_x,step_y);

break ;

}

case UP :

if((step_y-1)<0)

break ;

else

{

for(i=step_x,j=step_y-1;j>=1;j--)

if(box[i][j]==0)

{

draw_circle(step_x,step_y,LIGHTBLUE);

break ;

}

if(j<1)break ;

step_y=j ;

judgewho(step_x,step_y);

break ;

}

case ESC :

break ;

case SPACE :

if(step_x>=1&&step_x<=18&&step_y>=1&&step_y<=18)

{

if(box[step_x][step_y]==0)

{

box[step_x][step_y]=flag ;

if(judgeresult(step_x,step_y)==1)

{

sound(1000);

delay(1000);

nosound();

gotoxy(30,4);

if(flag==1)

{

setbkcolor(BLUE);

cleardevice();

setviewport(100,100,540,380,1);

/*定义一个图形窗口*/

setfillstyle(1,2);

/*绿色以实填充*/

setcolor(YELLOW);

rectangle(0,0,439,279);

floodfill(50,50,14);

setcolor(12);

settextstyle(1,0,5);

/*三重笔划字体, 水平放?5倍*/

outtextxy(20,20,"The White Win !");

setcolor(15);

settextstyle(3,0,5);

/*无衬笔划字体, 水平放大5倍*/

outtextxy(120,120,"The White Win !");

setcolor(14);

settextstyle(2,0,8);

getch();

closegraph();

exit(0);

}

if(flag==2)

{

setbkcolor(BLUE);

cleardevice();

setviewport(100,100,540,380,1);

/*定义一个图形窗口*/

setfillstyle(1,2);

/*绿色以实填充*/

setcolor(YELLOW);

rectangle(0,0,439,279);

floodfill(50,50,14);

setcolor(12);

settextstyle(1,0,8);

/*三重笔划字体, 水平放大8倍*/

outtextxy(20,20,"The Red Win !");

setcolor(15);

settextstyle(3,0,5);

/*无衬笔划字体, 水平放大5倍*/

outtextxy(120,120,"The Red Win !");

setcolor(14);

settextstyle(2,0,8);

getch();

closegraph();

exit(0);

}

}

change();

break ;

}

}

else

break ;

}

}

void change()

{

if(flag==1)

flag=2 ;

else

flag=1 ;

}

void judgewho(int x,int y)

{

if(flag==1)

draw_circle(x,y,15);

if(flag==2)

draw_circle(x,y,4);

}

int judgeresult(int x,int y)

{

int j,k,n1,n2 ;

while(1)

{

n1=0 ;

n2=0 ;

/*水平向左数*/

for(j=x,k=y;j>=1;j--)

{

if(box[j][k]==flag)

n1++;

else

break ;

}

/*水平向右数*/

for(j=x,k=y;j<=18;j++)

{

if(box[j][k]==flag)

n2++;

else

break ;

}

if(n1+n2-1>=5)

{

return(1);

break ;

}

/*垂直向上数*/

n1=0 ;

n2=0 ;

for(j=x,k=y;k>=1;k--)

{

if(box[j][k]==flag)

n1++;

else

break ;

}

/*垂直向下数*/

for(j=x,k=y;k<=18;k++)

{

if(box[j][k]==flag)

n2++;

else

break ;

}

if(n1+n2-1>=5)

{

return(1);

break ;

}

/*向左上方数*/

n1=0 ;

n2=0 ;

for(j=x,k=y;j>=1,k>=1;j--,k--)

{

if(box[j][k]==flag)

n1++;

else

break ;

}

/*向右下方数*/

for(j=x,k=y;j<=18,k<=18;j++,k++)

{

if(box[j][k]==flag)

n2++;

else

break ;

}

if(n1+n2-1>=5)

{

return(1);

break ;

}

/*向右上方数*/

n1=0 ;

n2=0 ;

for(j=x,k=y;j<=18,k>=1;j++,k--)

{

if(box[j][k]==flag)

n1++;

else

break ;

}

/*向左下方数*/

for(j=x,k=y;j>=1,k<=18;j--,k++)

{

if(box[j][k]==flag)

n2++;

else

break ;

}

if(n1+n2-1>=5)

{

return(1);

break ;

}

return(0);

break ;

}

}

void main()

{

int gdriver=VGA,gmode=VGAHI;

clrscr();

attention();

initgraph(&gdriver,&gmode,"c:\\tc");

/* setwritemode(XOR_PUT);*/

flag=1 ;

draw_box();

do

{

step_x=0 ;

step_y=0 ;

/*draw_circle(step_x,step_y,8); */

judgewho(step_x-1,step_y-1);

do

{

while(bioskey(1)==0);

key=bioskey(0);

judgekey();

}

while(key!=SPACE&&key!=ESC);

}

while(key!=ESC);

closegraph();

}

</score1)
</k&&k<8;ii++,jj++)
</k&&k<8;ii++,jj--)
</k&&k<8;kk++)
</k&&k
</size;i++);
</size;i++)
</size;i++)
</size;i++)
</size;i++)
</size;j++)
</size_carriage;j++)

</defen<<endl;
</endl;
</endl;
</sjsm<<"("<<sheng<<")"<<endl;
</sjsm<<"("<<shengm<<")"<<endl;
</sheng<<")"<<endl;
</gong<
</endl;
</sjq<<"("<<qian<<")"<<endl;
</endl;
</sjsm<<"("<<sheng<<")"<<endl;
</sjsm<<"("<<shengm<<")"<<endl;
</sheng<<")"<<endl;
</sheng1<<"("<<shengm<<")"<<endl;
</endl;
</fangc<
</sheng<<endl;
</fang1<<"=0"<<endl;
</fangc<
</guais<<endl;
</fang1<<"=0"<<endl;
</endl;
</guaig<<"="<<sheng<<endl;
</gong<<"="<<guais<<endl;
</gong1<<"=0"<<endl;
</endl;
</c<<")"<<endl;
</endl;
</sheng<
</guais<
</gong<
</endl;
</sjq<<"("<<qian<<")"<<endl;
</endl;
</sjsm<<"("<<sheng<<")"<<endl;
</sjsm<<"("<<shengm<<")"<<endl;
</sheng<<")"<<endl;
</sheng1<<"("<<shengm<<")"<<endl;
</endl;
</fangc<
</sheng<<endl;
</fang1<<"=0"<<endl;
</fangc<
</guais<<endl;
</fang1<<"=0"<<endl;
</endl;
</guaig<<"="<<sheng<<endl;
</gong<<"="<<guais<<endl;
</gong1<<"=0"<<endl;
</endl;
</c<<")"<<endl;
</endl;
</sheng<
</guais<
</sjq<<"("<<qian<<")"<<endl;
</endl;
</sjsm<<"("<<sheng<<")"<<endl;
</sjsm<<"("<<shengm<<")"<<endl;
</sheng<<")"<<endl;
</sheng1<<"("<<shengm<<")"<<endl;
</endl;
</fangc<
</sheng<<endl;
</fang1<<"=0"<<endl;
</fangc<
</guais<<endl;
</fang1<<"=0"<<endl;
</endl;
</guaig<<"="<<sheng<<endl;
</gong<<"="<<guais<<endl;
</gong1<<"=0"<<endl;
</endl;
</c<<")"<<endl;
</endl;
</sheng<
</guais<
</endl;
</endl;
</endl;
</endl;
</endl;
</qian<<"个金币"<<endl;
</smsxy<<endl;
</endl;
</qian<<"个金币"<<endl;
</yao<<endl;
</endl;
</qian<<"个金币"<<endl;
</sheng<<endl;
</qian<<"个金币"<<endl;
</endl;
</endl;
</endl;
</endl;
</endl;
</qian<<"个金币"<<endl;
</shengm<<endl;
</endl;
</qian<<"个金币"<<endl;
</shengm<<endl;
</endl;
</qian<<"个金币"<<endl;
</shengm<<endl;
</qian<<"个金币"<<endl;
</endl;
</endl;
</endl;
</endl;
</endl;
</qian<<"个金币"<<endl;
</fang<<endl;
</endl;
</qian<<"个金币"<<endl;
</fang<<endl;
</endl;
</qian<<"个金币"<<endl;
</fang<<endl;
</qian<<"个金币"<<endl;
</endl;
</endl;
</endl;
</endl;
</qian<<"个金币"<<endl;
</gong<<endl;
</qian<<"个金币"<<endl;
</gong<<endl;
</qian<<"个金币"<<endl;
</gong<<endl;
</qian<<"个金币"<<endl;
</endl;
</endl;
</endl;
</endl;
</endl;
</endl;
</endl;
</endl;
</endl;
</endl;
</endl;
</endl;
</endl;
</endl;
</endl;
</endl;
</endl;
</endl;
</endl;
</endl;

</snake.node;i++)

网站数据信息

"c语言源代码大全,c语言玫瑰花的编程源代码"浏览人数已经达到23次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:c语言源代码大全,c语言玫瑰花的编程源代码的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!