您的位置:

各种好玩的c语言代码,各种好玩的c语言代码大全

本文目录一览:

c语言浪漫代码

#include stdio.h

int main()

{

int i, j, k, l, m;

char c = '*'; //ASCII码里面 3 就是一个字符小爱心

for (i = 1; i = 5; i++)

printf("\n"); //开头空出5行

for (i = 1; i = 4; i++)

{ //前3行中间有空隙分开来写

for (j = 1; j = 32 - 2 * i; j++)

printf(" "); //左边的空格,每下一行左边的空格比上一行少2个 //8*n-2*i

for (k = 1; k = 4 * i - 2; k++)

printf("%c", c); //输出左半部分字符小爱心

for (l = 1; l = 17 - 4 * i; l++)

printf(" "); //中间的空格,每下一行的空格比上一行少4个

for (m = 1; m = 4 * i - 2; m++)

printf("%c", c); //输出右半部分字符小爱心

printf("\n"); //每一行输出完毕换行

}

for (i = 1; i = 3; i++)

{ //下3行中间没有空格

for (j = 1; j = 22 + 1; j++)

printf(" "); //左边的空格 //8*(n-1)+1

for (k = 1; k = 31; k++)

printf("%c", c); //输出字符小爱心

printf("\n"); //每一行输出完毕换行

}

for (i = 7; i = 1; i--)

{ //下7行

for (j = 1; j = 38 - 2 * i; j++)

printf(" "); //左边的空格,每下一行左边的空格比上一行少2个//8*(n+1)-2*i

for (k = 1; k = 4 * i + 1; k++)

printf("%c", c); //每下一行的字符小爱心比上一行少4个(这个循环是i--)

printf("\n"); //每一行输出完毕换行

}

for (i = 1; i = 38; i++)

printf(" "); //最后一行左边的空格

printf("%c", c); //最后一个字符小爱心

for (i = 1; i = 5; i++)

printf("\n"); //最后空出5行

return 0;

}

c语言必背100代码有哪些?

/*输出9*9口诀。共9行9列,i控制行,j控制列。*/

#include "stdio.h"

main()

{int i,j,result;

for (i=1;i10;i++)

{ for(j=1;j10;j++)

{

result=i*j;

printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/

}

printf("\n");/*每一行后换行*/

}

}

扩展资料:

C语言的字符串其实就是以'\0'字符结尾的char型数组,使用字符型并不需要引用库,但是使用字符串就需要C标准库里面的一些用于对字符串进行操作的函数。它们不同于字符数组。使用这些函数需要引用头文件string.h。

文件输入/输出

在C语言中,输入和输出是经由标准库中的一组函数来实现的。在ANSI C中,这些函数被定义在头文件stdio.h;中。

标准输入/输出

有三个标准输入/输出是标准I/O库预先定义的:

stdin标准输入

stdout标准输出

stderr输入输出错误

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

求几C语言个小游戏代码,简单的,要注释、、谢谢了、

// Calcu24.cpp : Defines the entry point for the console application.

//

/*

6-6

24点游戏

*/

#include "conio.h"

#include "stdlib.h"

#include "time.h"

#include "math.h"

#include "string.h"/*

从一副扑克牌中,任取4张。

2-10 按其点数计算(为了表示方便10用T表示),J,Q,K,A 统一按 1 计算

要求通过加减乘除四则运算得到数字 24。

本程序可以随机抽取纸牌,并用试探法求解。

*/void GivePuzzle(char* buf)

{

char card[] = {'A','2','3','4','5','6','7','8','9','T','J','Q','K'}; for(int i=0; i4; i++){

buf[i] = card[rand() % 13];

}

}

void shuffle(char * buf)

{

for(int i=0; i5; i++){

int k = rand() % 4;

char t = buf[k];

buf[k] = buf[0];

buf[0] = t;

}

}

int GetCardValue(int c)

{

if(c=='T') return 10;

if(c='0' c='9') return c - '0';

return 1;

}

char GetOper(int n)

{

switch(n)

{

case 0:

return '+';

case 1:

return '-';

case 2:

return '*';

case 3:

return '/';

} return ' ';

}double MyCalcu(double op1, double op2, int oper)

{

switch(oper)

{

case 0:

return op1 + op2;

case 1:

return op1 - op2;

case 2:

return op1 * op2;

case 3:

if(fabs(op2)0.0001)

return op1 / op2;

else

return 100000;

} return 0;

}

void MakeAnswer(char* answer, int type, char* question, int* oper)

{

char p[4][3];

for(int i=0; i4; i++)

{

if( question[i] == 'T' )

strcpy(p[i], "10");

else

sprintf(p[i], "%c", question[i]);

}

switch(type)

{

case 0:

sprintf(answer, "%s %c (%s %c (%s %c %s))",

p[0], GetOper(oper[0]), p[1], GetOper(oper[1]), p[2], GetOper(oper[2]), p[3]);

break;

case 1:

sprintf(answer, "%s %c ((%s %c %s) %c %s)",

p[0], GetOper(oper[0]), p[1], GetOper(oper[1]), p[2], GetOper(oper[2]), p[3]);

break;

case 2:

sprintf(answer, "(%s %c %s) %c (%s %c %s)",

p[0], GetOper(oper[0]), p[1], GetOper(oper[1]), p[2], GetOper(oper[2]), p[3]);

break;

case 3:

sprintf(answer, "((%s %c %s) %c %s) %c %s",

p[0], GetOper(oper[0]), p[1], GetOper(oper[1]), p[2], GetOper(oper[2]), p[3]);

break;

case 4:

sprintf(answer, "(%s %c (%s %c %s)) %c %s",

p[0], GetOper(oper[0]), p[1], GetOper(oper[1]), p[2], GetOper(oper[2]), p[3]);

break;

}

}

bool TestResolve(char* question, int* oper, char* answer)

{

// 等待考生完成

int type[5]={0,1,2,3,4};//计算类型

double p[4];

double sum=0;

//

for(int i=0; i4; i++) //循环取得点数

{

p[i]=GetCardValue(int(question[i]));

} for(i=0;i5;i++)

{

MakeAnswer(answer,type[i],question,oper); //获取可能的答案

switch(type[i])

{

case 0:

sum=MyCalcu(p[0],MyCalcu( p[1],MyCalcu(p[2], p[3], oper[2]),oper[1]),oper[0]); //A*(B*(c*D))

break;

case 1:

sum=MyCalcu(p[0],MyCalcu(MyCalcu(p[1], p[2], oper[1]),p[3],oper[2]),oper[0]); //A*((B*C)*D)

break;

case 2:

sum=MyCalcu(MyCalcu(p[0], p[1], oper[0]),MyCalcu(p[2], p[3], oper[2]),oper[1]); // (A*B)*(C*D)

break;

case 3:

sum=MyCalcu(MyCalcu(MyCalcu(p[0], p[1], oper[0]),p[2],oper[1]),p[3],oper[2]); //((A*B)*C)*D

break;

case 4:

sum=MyCalcu(MyCalcu(p[0],MyCalcu(p[1], p[2], oper[1]),oper[0]),p[3],oper[2]); //(A*(B*C))*D

break;

}

if(sum==24) return true;

}

return false;

}

/*

采用随机试探法:就是通过随机数字产生 加减乘除的 组合,通过大量的测试来命中的解法

提示:

1. 需要考虑用括号控制计算次序的问题 比如:( 10 - 4 ) * ( 3 + A ), 实际上计算次序的数目是有限的:

A*(B*(c*D))

A*((B*C)*D)

(A*B)*(C*D)

((A*B)*C)*D

(A*(B*C))*D

2. 需要考虑计算结果为分数的情况:( 3 + (3 / 7) ) * 7

3. 题目中牌的位置可以任意交换

*/

bool TryResolve(char* question, char* answer)

{

int oper[3]; // 存储运算符,0:加法 1:减法 2:乘法 3:除法

for(int i=0; i1000 * 1000; i++)

{

// 打乱纸牌顺序

shuffle(question);

// 随机产生运算符

for(int j=0; j3; j++)

oper[j] = rand() % 4; if( TestResolve(question, oper, answer) ) return true;

} return false;

}

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

{

// 初始化随机种子

srand( (unsigned)time( NULL ) ); char buf1[4]; // 题目

char buf2[30]; // 解答

printf("***************************\n");

printf("计算24\n");

printf("A J Q K 均按1计算,其它按牌点计算\n");

printf("目标是:通过四则运算组合出结果:24\n");

printf("***************************\n\n");

for(;;)

{

GivePuzzle(buf1); // 出题

printf("题目:");

for(int j=0; j4; j++){

if( buf1[j] == 'T' )

printf("10 ");

else

printf("%c ", buf1[j]);

} printf("\n按任意键参考答案...\n");

getch(); if( TryResolve(buf1, buf2) ) // 解题

printf("参考:%s\n", buf2);

else

printf("可能是无解...\n"); printf("按任意键出下一题目,x 键退出...\n");

if( getch() == 'x' ) break;

} return 0;

}

有什么好玩的C语言小程序

一个“歼灭敌机”的小游戏,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;iW-2;i+=2) {gtxy(zlx+i,zly);  printf("═"); }      //打印上横框

for(i=2;iW-2;i+=2) {gtxy(zlx+i,zly+H-1); printf("═"); }  //打印下横框

for(i=1;iH-1;i++) { gtxy(zlx,zly+i);  printf("║"); }       //打印左竖框

for(i=1;iH-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;iH-2;i++)

for(j=0;jW-4;j++){gtxy(zlx+2+j,zly+1+i);printf(" ");}

}

void feiji( )  //飞机移动函数

{int i,j;

for(i=21;i=0;i--)  //从底行往上是为了避免敌机直接冲出数组

  for(j=0;j22;j++)

     {if(i==21jiem[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]==3jiem[21][wj]==1) death++;

}

void zidan( )  //子弹移动函数

{ int i,j;

for(i=0;i22;i++)

  for(j=0;j22;j++)

     {if(i==0jiem[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;i22;i++)

for(j=0;j22;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;i22;i++)

 for(int j=0;j22;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(wj0) jiem[21][wj]=0,jiem[21][--wj]=1; break;

        case 77: if(wj20) 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 ”才有效。

各种好玩的c语言代码,各种好玩的c语言代码大全

2023-01-07
好玩的c语言代码大全,最简单的c语言代码

2023-01-06
好玩的趣味c语言编程,好玩的趣味c语言编程软件

2023-01-07
c语言好不好考,c语言要考试吗

2022-11-29
c语言的诺手,玩诺手学c语言

2023-01-06
c语言怎么运行别人的代码,c语言代码怎样运行

2022-11-24
c语言还是c++,c语言还是c++好

2023-01-07
python好玩儿(python好玩儿的代码)

2022-11-16
学c语言好还是c++好,c语言c++语言学哪个好

2023-01-04
c语言神庙逃亡,c语言神庙逃亡源代码

2022-11-25
c语言语法难度,c++和c语言难度

2022-11-22
基础c语言笔记,C语言笔记

2023-01-06
c语言知识笔记,c语言最全笔记

2023-01-04
c语言笔记讲解,c语言程序笔记

2022-11-23
c语言2000行代码项目,3000行代码C语言

2022-11-27
c++好还是c语言好,学c语言和c++的区别

本文目录一览: 1、C语言好还是C++好 2、c语言好还是c++好 3、c语言好还是C++好 C语言好还是C++好 C与C++的最大区别:在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先

2023-12-08
c++好还是c语言好,学c语言和c++的区别

本文目录一览: 1、C语言好还是C++好 2、c语言好还是c++好 3、c语言好还是C++好 C语言好还是C++好 C与C++的最大区别:在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先

2023-12-08
c语言各行代码,C语言 代码大全

2022-11-29
c语言跑酷小游戏代码,炫酷c语言代码

2023-01-08
c语言小游戏代码,c语言小游戏代码200行

2023-01-08