问题 4368 --全排列(完善程序)

4368: 全排列(完善程序)★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 136  解决: 87
[提交][状态][命题人:]

题目描述

用生成法求出1,2,3,...,r的全排列

#include<iostream>  
#include<cstdio>  
using namespace std;  
const int r = 7;  
int n, i, s, k, j, i1, t, a[r + 1];  
void print1()  
{  
    int ik;  
    for (ik = 1; ik <= r; ++ik)  
		cout << " " << a[ik];  
    cout << endl;  
}  
int main() 
{  
    for (i = 1; i <= r; ++i)   ____(1)______
    print1();  
    s = 1;  
    for (i = 2; i <= r; ++i) s = s * i;  
    s = s - 1;  
    for (i =1; ____(2)______; ++i)  
    {  
        j = r;  
        while (_____(3)_____) j = j - 1;  
        k = j;  
        for (i1 = j + 1; i1 <= r; ++i1)  
            if (_____(4)_______) k = i1;  
        t = a[j - 1]; a[j - 1] = a[k]; a[k] = t;  
        for (i1 = j; i1 <= r - 1; ++i1)  
            for (k = i1 + 1; k <= r; ++k)  
                if (_____(5)______)  
                {  
                    t = a[i1]; a[i1] = a[k]; a[k] = t;  
                }  
        print1();
    }  
    return 0;  
}

输入

输出

      ①的答案为________

A. a[i]=1   B.  a[i]=0   C. a[i]=i   D. a[i]=-1

      ②的答案为________

A. i<=r   B.  i<s   C. i<r   D. i<=s

的答案为________

A.  a[j]<a[j+1]   B.  a[j]>a[j+1]   C. a[j-1]>a[j]   D. a[j-1]<a[j]

      ④的答案为________

A. a[i1]>a[j-1]&&a[i1]<a[k]   B.  a[i1]>a[j]&&a[i1]<a[k]   

C. a[i1]<a[j-1]&&a[i1]<a[k]   D.  a[i1]<a[j]&&a[i1]>a[k]

的答案为________

A. a[i1]<a[k]   B.  a[i1]>a[k]  C. a[k]>a[k+1]   D.  a[k]>a[k-1]

每个选项答案单独一行输出,均为大写字母

提示

来源

[提交][状态]