求C语言编程代码及注释。。。

求C语言编程代码及注释。。。插入后自动排序(掌握用穷举法进行比较、交换)
把一个整数插入到按由小到大排列的数列中,插入后仍然保持由小到大的顺序排列。
要求:用数据指针。

第1个回答  2016-12-25
扫雷游戏(c语言版)已经编译运行确认了:#include#include#include#defineLEFTPRESS0xff01#defineLEFTCLICK0xff10#defineLEFTDRAG0xff19#defineMOUSEMOVE0xff08struct{intnum;/*格子当前处于什么状态,1有雷,0已经显示过数字或者空白格子*/introundnum;/*统计格子周围有多少雷*/intflag;/*右键按下显示红旗的标志,0没有红旗标志,1有红旗标志*/}Mine[10][10];intgameAGAIN=0;/*是否重来的变量*/intgamePLAY=0;/*是否是第一次玩游戏的标志*/intmineNUM;/*统计处理过的格子数*/charrandmineNUM[3];/*显示数字的字符串*/intKeystate;intMouseExist;intMouseButton;intMouseX;intMouseY;voidInit(void);/*图形驱动*/voidMouseOn(void);/*鼠标光标显示*/voidMouseOff(void);/*鼠标光标隐藏*/voidMouseSetXY(int,int);/*设置当前位置*/intLeftPress(void);/*左键按下*/intRightPress(void);/*鼠标右键按下*/voidMouseGetXY(void);/*得到当前位置*/voidControl(void);/*游戏开始,重新,关闭*/voidGameBegain(void);/*游戏开始画面*/voidDrawSmile(void);/*画笑脸*/voidDrawRedflag(int,int);/*显示红旗*/voidDrawEmpty(int,int,int,int);/*两种空格子的显示*/voidGameOver(void);/*游戏结束*/voidGameWin(void);/*显示胜利*/intMineStatistics(int,int);/*统计每个格子周围的雷数*/intShowWhite(int,int);/*显示无雷区的空白部分*/voidGamePlay(void);/*游戏过程*/voidClose(void);/*图形关闭*/voidmain(void){Init();Control();Close();}voidInit(void)/*图形开始*/{intgd=DETECT,gm;initgraph(&gd,&gm,"c:\\tc");}voidClose(void)/*图形关闭*/{closegraph();}voidMouseOn(void)/*鼠标光标显示*/{_AX=0x01;geninterrupt(0x33);}voidMouseOff(void)/*鼠标光标隐藏*/{_AX=0x02;geninterrupt(0x33);}voidMouseSetXY(intx,inty)/*设置当前位置*/{_CX=x;_DX=y;_AX=0x04;geninterrupt(0x33);}intLeftPress(void)/*鼠标左键按下*/{_AX=0x03;geninterrupt(0x33);return(_BX&1);}intRightPress(void)/*鼠标右键按下*/{_AX=0x03;geninterrupt(0x33);return(_BX&2);}voidMouseGetXY(void)/*得到当前位置*/{_AX=0x03;geninterrupt(0x33);MouseX=_CX;MouseY=_DX;}voidControl(void)/*游戏开始,重新,关闭*/{intgameFLAG=1;/*游戏失败后判断是否重新开始的标志*/while(1){if(gameFLAG)/*游戏失败后没判断出重新开始或者退出游戏的话就继续判断*/{GameBegain();/*游戏初始画面*/GamePlay();/*具体游戏*/if(gameAGAIN==1)/*游戏中重新开始*/{gameAGAIN=0;continue;}}MouseOn();gameFLAG=0;if(LeftPress())/*判断是否重新开始*/{MouseGetXY();if(MouseX>280&&MouseX65&&MouseY280&&MouseX65&&MouseY190&&MouseX90&&MouseY190&&MouseX90&&MouseY<290)/*当前鼠标位置在格子范围内*/{j=(MouseX-190)/20;/*x坐标*/i=(MouseY-90)/20;/*y坐标*/MouseOff();if(Mine[i][j].flag==0&&Mine[i][j].num!=0)/*本来没红旗现在显示红旗*/{DrawRedflag(i,j);Mine[i][j].flag=1;}elseif(Mine[i][j].flag==1)/*有红旗标志再按右键就红旗消失*/{DrawEmpty(i,j,0,8);Mine[i][j].flag=0;}}MouseOn();sleep(1);}}}
相似回答