c语言源代码大全?C语言开发软件
老铁们,大家好,相信还有很多朋友对于c语言源代码大全和C语言开发软件的相关问题不太懂,没关系,今天就由我来为大家分享分享c语言源代码大全以及C语言开发软件的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!
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=0;i<4;i++)//给数组a依序赋值
for(j=0;j<4;j++)
{ 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=1; n=1;
srand((unsigned)time(0));//初始化随机数发生器
for(r=0;r<500;r++)//将数组各值打乱
{k=rand()%(4);//取0-3随机数,分别代表上下左右四个方向
switch(k)
{ case 0:{ up();break;}
case 1:{down();break;}
case 2:{left();break;}
case 3:{rght(); break;}
}
}
printf("
\t\t数字拼图");
printf("
\t┌──────┬──────┬──────┬──────┐");
printf("
\t│││││");
printf("
\t├──────┼──────┼──────┼──────┤");
printf("
\t│││││");
printf("
\t├──────┼──────┼──────┼──────┤");
printf("
\t│││││");
printf("
\t├──────┼──────┼──────┼──────┤");
printf("
\t│││││");
printf("
\t└──────┴──────┴──────┴──────┘");
show();
}
void show(void)
{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("│");
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=0;i<4;i++)
for(j=0;j<4;j++)
{ 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);
}
C语言源代码分析(越易懂越好,我只是一个初学者)
printf“”里的是原样输出的东西,但是你的y是未知的,是你程序运行到这一步才可以得到的,你没有办法写到“”里,所以你用%d代替,%d不会原样输出,它代表整数,而你的y的数值就是%d的数值,就是当printf里有%d的时候程序知道它的数值是“”,后跟的那个数,也就是这个程序里的y,比如printf(“%d%d%d”,a,b,c);第一个%d输出的是a的值,第二个%d输出的是b的值,第三个就是c的值了,如果是%c就是字符的意思,%f就是浮点型的数
c语言源代码文件格式是什么
C语言源文件后缀名是.c,编译生成的文件后缀名是.obj,连接后可执行文件的后缀名是.exe。
源文件的后缀仅仅是为了表明该文件中保存的是某种语言的代码(例如.c文件中保存的是C语言代码),这样程序员更加容易区分,编译器也更加容易识别,它并不会导致该文件的内部格式发生改变。
扩展资料
C语言是一种结构化语言,它有着清晰的层次,可按照模块的方式对程序进行编写,十分有利于程序的调试,且c语言的处理和表现能力都非常的强大。
依靠非常全面的运算符和多样的数据类型,可以轻易完成各种数据结构的构建,通过指针类型更可对内存直接寻址以及对硬件进行直接操作,因此既能够用于开发系统程序,也可用于开发应用软件。
C语言是普适性最强的一种计算机程序编辑语言,它不仅可以发挥出高级编程语言的功用,还具有汇编语言的优点。
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!