急!用C语言实现一个小程序

# include & ltstdio.h & gt

#定义N 10 //十个数据

#定义M 5 //五组

int limit[N][N]=

{

{1,n},/0限制1;

{3,5,6,N},//1极限3,5,6;

{0,1,6,7,N},//2极限0,1,6,7;

{1,2,N},//3极限1,2;

{N},//

{1,2,N},//5限制1,2;

{2,N},//6极限2;

{8,9,N},//7限制8,9;

{5,6,7,N},//8限制5,6,7;

{2,8,N} //9限制2,8。

};

//判断M是否限制n。

bool m_limit_n(int m,int n)

{

int I;

如果(m & gt= N | | n & gt=N)

{

返回false

}

for(I = 0;我& ltN & amp& amp极限[m][I]& lt;n;i++)

{

if(limit[m][i]==n)

{

返回true

}

}

返回false

}

布尔值有效(int *arr)

{

int i,j;

for(I = 0;我& ltn;i=i+2)

{

if(arr[I]& gt;arr[i+1])

{

返回false

}

if(m_limit_n(arr[i],arr[(i+2)%N])

||m_limit_n(arr[i],arr[(i+3)%N])

||m_limit_n(arr[i+1],arr[(i+2)%N])

||m_limit_n(arr[i+1],arr[(i+3)%N])

{

返回false

}

}

返回true

}

void exchange(int *arr,int n,int m)

{

内部温度;

temp = arr[n];

arr[n]= arr[m];

arr[m]= temp;

}

int a[]={0,1,2,3,4,5,6,7,8,9 };

void perm(int* arr,int n,int curr)

{

int I;

if(curr & gt;=n-1)

{

if(有效(arr))

{

for(I = 0;我& ltn;i=i+2)

{

printf("%d,%d ",arr[i],arr[I+1]);

}

printf(" \ b \ n ");

}

}

其他

{

for(I = curr;我& ltn;i=i+1)

{

if(i==curr)

{

perm(arr,n,curr+1);

}

其他

{

exchange(arr,I,curr);

perm(arr,n,curr+1);

exchange(arr,I,curr);

}

}

}

}

int main()

{

perm(a,sizeof(a)/sizeof(a[0]),0);

返回0;

}

“约束条件是根据实际情况确定的,所以要求程序给出提示,让用户输入约束条件。”很简单,自己做吧。