c语言计算数字的排列

题目要求:

输入一个数字序列{a1,a2,…,an},将该序列进行排列,并输出每一种排列方式。

#include "stdio.h"

getStep(int m[])								/*显示数阵中数字移动的步骤*/
{
    int i,j,tmp;
    for(i=0;i<7;i++)								/*冒泡排序*/
        for(j=0;j<7-i;j++)
        if(m[j]>=m[j+1])
        {
            tmp = m[j];
            m[j] = m[j+1];
            m[j+1] = tmp;     					/*数据的交换*/
            printf("(%d# --> 0#)
",j+1);
            printf("(%d# --> %d#)
",j+2,j+1);
            printf("(0# --> %d#)
",j+2);		/*输出移动步骤*/
        }
       printf("
");
}

Print(int m[])									/*打印出当前数阵的状态*/
{
    printf("  [%d]--[%d]--[%d]
",m[0],m[1],m[2]);
    printf("   |  %c |  %c | 
",92,47);
    printf("  [%d]--[ ]--[%d]
",m[7],m[3]);
    printf("   |  %c |  %c | 
",47,92);
    printf("  [%d]--[%d]--[%d]
",m[6],m[5],m[4]);
}

main()
{
    int i , m[8];
    printf("Please input 8 integer (1~8) to arrange this matrix
");
    for(i=0;i<8;i++)
            scanf("%d",&m[i]);
    printf("The initial data matrix is like
");
    Print(m);
    printf("
Move Step:
");
    getStep(m);
    printf("The result of moving is
");
    Print(m);
    getche();
}

运行结果:

c语言计算数字的排列

运行结果

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章