현재 위치 - 인적 자원 플랫폼망 - 미니프로그램 자료 - 긴급! C로 작은 프로그램 구현하기
긴급! C로 작은 프로그램 구현하기
# include & ltstdio.h & gt

#define N 10 //10 데이터

#define M 5 //5 그룹

int limit[N][N]=

{

{1, n}, /0 limit 1;

{3, 5, 6, N}, //1 limit 3, 5. , 6;

{0, 1, 6, 7, N}, //2 limit 0, 1, 6, 7;

{1, 2, N}, //3 limit 1, 2;

{N}, //

{1, 2, N}, //5 limit 1, 2;

{2, N}, /6 limit 2;

{8, 9, N} , //7 limit 8, 9;

{5, 6, 7, N}, //8 limit 5, 6, 7;

{2, 8, N} //9 limit 2, 8.

};

M이 n을 제한하는지 결정합니다.

bool m_limit_n(int m, int n)

{

int I;

if (m & gt= N | | n & gt=N)

{

Return false

}

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

{

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

{

참을 반환

}

}

참을 반환

참을 반환

부울 값 유효 (int *arr)

{

int i, j;

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

{

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

{

Return 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])

{

Returns false

}

}

참을 반환합니다

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(valid(arr))

{

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

{

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

}

printf(" \ b \ n ");

}

}

Other

{

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

{

if(i==curr)

{

perm(arr, n, curr+1);

}

p>

기타

{

exchange(arr, I, curr);

perm(arr, n, curr+1);

exchange(arr, I, curr) ;

}

}

}

int main()

{

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

returns 0;

}

"제약 조건은 사례별로 결정되므로 프로그램에서 사용자에게 제약 조건을 입력하라는 메시지를 표시해야 합니다." 간단합니다. 직접 해보세요.