C语言源代码,就是依据C语言规则所写出的程序代码,常见的存储文件扩展名为.c文件和.h文件,分别对应C源文件(source file)和C头文件(header file)。
C语言是一门编程语言,简单点说,就是由人类书写按照一定规范书写的字符,通过一定手段(编译链接)转换后,可以让电脑或者其它电子芯片"读懂",并按照其要求工作的语言。
在所有的编程语言中,C语言是相对古老而原始的,同时也是在同类语言中更接近硬件,最为高效的编程语言。
扩展资料:
C语言广泛应用于底层开发。它的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
它能提供了许多低级处理的功能,可以保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
参考资料:百度百科-源码
数字版“拼图”游戏C源代码:
#include<time.h>
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<windows.h>
int i, j, r, k //i、j、r用于循环, k存放随机数值
int m, n // m、n是当前空位的下标, t标记排序是否成功
int a[4][4] //存储4×4共16个数字的数组
void show(void) //输出数组表格
void csh(void) //初始化界面
int yes(void) //判断排序是否成功
void up(void) //数字向上移动到空位(空位则下移)
void down(void) //数字向下移
void left(void) //数字向左移
void rght(void) //数字向右移
void inkey(void) //按键 *** 作
void gtxy(int x, int y) //控制光标移动的函数
int main(void)
{ while(1)
{csh( )
while(1)
{ inkey()
show()
if ( yes( ) )
{gtxy(6,12)printf("你成功了! 再来一局y/n?")break}
}
if(getch( )== ʹnʹ)break
}
return 0
}
void csh(void)
{ r=0
CONSOLE_CURSOR_INFO cursor_info={1,0} //以下两行是隐藏光标的设置
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info)
for(i=0i<4i++) //给数组a依序赋值
for(j=0j<4j++)
{ if (i==3 &&j==3) a[i][j]=0
else a[i][j]=1+r++
}
a[3][3]=a[1][1]a[1][1]=0 //把a[3][3]与a[1][1]的值交换一下
m=1n=1
srand((unsigned)time(0)) //初始化随机数发生器
for(r=0r<500r++) //将数组各值打乱
{ k=rand( )%(4) //取0-3随机数,分别代表上下左右四个方向
switch(k)
{ case 0: { up( ) break}
case 1: {down( ) break}
case 2: { left( ) break}
case 3: { rght( )break}
}
}
printf("\n\n\t\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│ │ │ │ │")
printf("\n\t└──────┴──────┴──────┴──────┘")
show( )
}
void show(void)
{for(i=0i<4i++)
for(j=0j<4j++) //gtxy(7*j+9, 2*i+4)是光标到指定位置输出数字
{gtxy(7*j+9,2*i+4)if(a[i][j]==0)printf(" │")
else if(a[i][j]>9)printf(" %d │",a[i][j])
else printf(" %d │",a[i][j])
}
}
void inkey(void)
{ int key
key=getch( )
switch(key)
{ case 72: { up( )break }
case 80: {down( )break}
case 75: {left( )break}
case 77: { rght( ) break }
}
}
void up(void)
{ if (m!=3) //移动时要考虑空位"0"是否已经在边界
{ a[m][n]=a[m+1][n] m++a[m][n]=0}
}
void down(void)
{ if (m!=0)
{a[m][n]=a[m-1][n] m--a[m][n]=0}
}
void left(void)
{ if (n!=3)
{ a[m][n]=a[m][n+1]n++a[m][n]=0 }
}
void rght(void)
{ if (n!=0)
{ a[m][n]=a[m][n-1]n--a[m][n]=0}
}
int yes(void)
{ r=0
for(i=0i<4i++)
for(j=0j<4j++)
{ if (a[i][j]!=1+r++) return (r==16)?1:0}
}
void gtxy(int x, int y) //控制光标移动的函数
{ COORD coord
coord.X = x
coord.Y = y
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)