| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 5644 人关注过本帖, 1 人收藏
标题:看了上次的回文串排序有感而发,出个题大家玩玩
取消只看楼主 加入收藏
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:0 
用吹版的方法简化了下,但只能显示1-9的排序。
#include <stdio.h>
#include <string.h>
void insert(char *a,int frompos,int len,int topos)
{
    char temp[10],temp1[10];
    int i=frompos+len-1-topos;
    strncpy(temp,a+frompos-1,len);
    strncpy(temp1,a+topos-1,frompos-topos);
    strncpy(a+topos-1,temp,len);
    strncpy(a+topos-1+len,temp1,frompos-topos);
}

main()
{
   
    int m,k,i,max,j=1,n;
    scanf("%d",&n);
    char a[10];
    max=n;
    for(i=0;i<n;i++)
    {
        a[i]=i+'1';
    }

    a[i]='\0';
    i=k=n/2;
    m=(n-1)/2;
    printf("%s\n",a);
    insert(a,n+1-k,k,2);
    printf("%s\n",a);
    while(m--)
    {
        insert(a,i+1,2,j);
        j++;
        i++;
        printf("%s\n",a);
    }
    if(n%2==0)
    {insert(a,n,1,k);
    printf("%s\n",a);}
    return 0;
}
2017-03-30 21:11
快速回复:看了上次的回文串排序有感而发,出个题大家玩玩
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021828 second(s), 11 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved