画格子用的c语言函数 画格子用的c语言函数有哪些( 六 )


setfillpattern() 设置用户图样函数
floodfill() 填充闭域函数
fillpoly() 填充多边形函数
getfillsettings() 获取填充设置函数
getfillpattern() 获取用户图样设置函数
(六)、图像函数
imagesize() 图像存储大小函数
getimage() 保存图像函数
putimage() 输出图像函数
81格的九宫格,用c语言编程,求助#include "stdio.h"
//定义栈的最大长度
#define MAXSTACKLENGTH 81
//待求解的九宫格矩阵,空白位置用0表示
int jiuGongArray[][9]={{0,0,0,0,4,0,0,3,2},
{4,0,0,0,0,1,0,0,0},
{5,3,0,6,0,0,0,0,7},
{3,0,0,5,1,0,7,0,0},
{0,0,5,0,3,0,2,0,0},
{0,0,9,0,7,4,0,0,3},
{1,0,0,0,0,9,0,4,6},
{0,0,0,1,0,0,0,0,9},
{8,9,0,0,6,0,0,0,0}};
//空缺数据组成的矩阵,共有九个九宫格单元,从左到右 , 然后从上到下编号为0-8;
//例如:第一个九宫格单元空缺的数字为1,4,8,则矩阵dataNeedToBeInsert的第一行
//为{1,0,0,4,0,0,0,8,0}
int dataNeedToBeInsert[][9]={{1,2,3,4,5,6,7,8,9},
{1,2,3,4,5,6,7,8,9},
{1,2,3,4,5,6,7,8,9},
{1,2,3,4,5,6,7,8,9},
{1,2,3,4,5,6,7,8,9},
{1,2,3,4,5,6,7,8,9},
{1,2,3,4,5,6,7,8,9},
{1,2,3,4,5,6,7,8,9},
{1,2,3,4,5,6,7,8,9}};
//定义栈单元的结构
typedef struct
{
int xPosition;
int yPosition;
int jiuGongGePosition;
int num;
}node;
//定义栈数组
node stack[MAXSTACKLENGTH];
//由给定的九宫格矩阵,查找空缺的数据
void FindDataToBeInsert(void)
{
int i,j;
int x,y;
for(i=0;i9;i++)
for(j=0;j9;j++)
{
if(jiuGongArray[i][j]!=0)
{
x=(i/3)*3+j/3;
y=jiuGongArray[i][j]-1;
dataNeedToBeInsert[x][y]=0;
}
}
}
//输出m*n的矩阵
void PrintArray(int *ptr,int m,int n)
{
int i,j;
int data;
int temp;
temp = n-1;
for(i=0;im;i++)
for(j=0;jn;j++)
{
data = https://www.04ip.com/post/*(ptr+i*n+j);
printf("%d ",data);
if(j == temp)
{
printf("\n");
}
}
}
//核实是否满足结束条件
int CheckEnd(void)
{
int i,j,sum;
for(i=0;i9;i++)
{
sum = 0;
for(j=0;j9;j++)
{
sum += jiuGongArray[i][j];
}
if(sum != 45)
{
return -1;
}
}
for(j=0;j9;j++)
{
sum = 0;
for(i=0;i9;i++)
{
sum += jiuGongArray[i][j];
}
if(sum != 45)
{
return -1;
}
}
return 0;
}
//从矩阵dataNeedToBeInsert[][]中查找下一个数据
int FindNextData(int m,int n,int *xPosition,int *yPosition)
{
int state=0;
if(n8)
{
n = 0;
m++;
}
if(m8)
{
state = CheckEnd();
if(state != 0)
return -1;
else
return 1;
}
while(dataNeedToBeInsert[m][n] == 0)
{
if(n8)
n++;
else
{
n = 0;
m++;
if(m8)
{
state = CheckEnd();
if(state != 0)
return -1;
else
return 1;
}
}
}
*xPosition = m;
*yPosition = n;
return 0;
}
//核实元素对应的行和列是否有相同的数字
int CheckLine(int m,int n,int num)
{
int i;
for(i=0;i9;i++)
{
if(jiuGongArray[m][i] == num)
return -1;
}
for(i=0;i9;i++)
{
if(jiuGongArray[i][n] == num)
return -1;
}
return 0;
}
//核实是否满足入栈条件
int CheckCanPush(int m,int n,int *position)
{
int start=*position;
int i,temp1,temp2,temp3,temp4;

推荐阅读