| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 586 人关注过本帖
标题:一道算法问题,请教
只看楼主 加入收藏
widon1104
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2010-3-9
结帖率:100%
收藏
 问题点数:0 回复次数:3 
一道算法问题,请教
题目很简单就是把字符串的一部分调换位置,比如字符串有n个元素,把p到n-1的字符串,调换到字符串前。
比如字符串:n=10,a[]={1,2,3,4,5,6,7,8,9,10};
p=4的化,转换后a[]={5,6,7,8,9,10,1,2,3,4};
难点就是只能用题目设定好的变量,用最小的空间
void f(int *a,int p,int n)
{
    int i,j,t;
....
}
int main(void)
{
    int a[]={1,2,3,4,5,6,7,8,9,10};
    f(a,4,10);
    for(i=0;i<10;i++){
        printf("%d ",a[i]);
    }
    return 0;
}
搜索更多相关主题的帖子: 算法 
2010-03-20 23:10
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
#include <stdio.h>
void f(int *a,int p,int n)
{
    int i,j,t;
    for (i=0;i<p;i++)
    {
        t=*a;
        for (j=0;j<n-1;j++)
        {
            *(a+j)=*(a+j+1);
        }
        *(a+n-1)=t;
    }
}
int main(void)
{
    int a[]={1,2,3,4,5,6,7,8,9,10};
    f(a,4,10);
    for(int i=0;i<10;i++){
        printf("%d ",a[i]);
    }
    return 0;
}


[ 本帖最后由 cnfarer 于 2010-3-22 15:20 编辑 ]

★★★★★为人民服务★★★★★
2010-03-22 08:21
wangjianhui
Rank: 8Rank: 8
来 自:^帅帅城^
等 级:蝙蝠侠
威 望:2
帖 子:353
专家分:745
注 册:2010-3-19
收藏
得分:0 
  for (i=0;i<p;i++)
      {    t=*a;
           for (j=0;j<n-1;j++)
           {
             *(a+j)=*(a+j+1);
           }
            *(a+n-1)=t;
      }
   

加油
2010-03-22 15:26
shaojie519
Rank: 2
等 级:论坛游民
帖 子:12
专家分:21
注 册:2009-7-31
收藏
得分:0 
是这样,c语言for语句不能再里面定义int 的i吧,小语法错误
2010-03-22 19:03
快速回复:一道算法问题,请教
数据加载中...
 
   



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

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032130 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved