| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 421 人关注过本帖
标题:[求助3]指针,看下哪错了
取消只看楼主 加入收藏
a8451727
Rank: 1
等 级:新手上路
帖 子:238
专家分:5
注 册:2007-5-22
结帖率:86.67%
收藏
 问题点数:0 回复次数:2 
[求助3]指针,看下哪错了

有N个数,移动M个数放到后面: 2 3 4 5 6 7 8 9---> 5 6 7 8 9 2 3 4

为什么我能把前面的移到后面,后面的移到前面却出错呢?

#include<iostream>
using namespace std;
const int max=10;
const int n=4;

int main()
{
void sort(int *p,int s);
int a[max];
int *p=a;
int j=5;

for(p=a;p<(a+max);p++){
j++;
*p=j;
}
for(p=a;p<(a+max);){
cout<<*p++<<' ';
}
cout<<endl;
sort(a,n);
return 0;
}

void sort(int *p,int s)
{
int i,j;

int a[max];
int a1[n],
a2[max-n];
int *array=a,
*array1=a1,
*array2=a2;

for(j=s;j<max;j++){
*(array2+j)=*(p+j);
}

for(i=0;i<max-s;i++){
*(array+i)=*(array2+i); //这里是移动后面到前面的,哪出错了?
}
//******************************
for(i=0;i<s;i++){
*(array1+i)=*(p+i);
}

for(i=max-s,j=0;i<max,j<s;i++,j++){ //前面的移到后面却行呢?
*(array+i)=*(array1+j);
}

for(array=a;array<(a+max);array++){
cout<<*array<<' ';
}
cout<<endl;
}

搜索更多相关主题的帖子: 指针 
2007-07-30 15:45
a8451727
Rank: 1
等 级:新手上路
帖 子:238
专家分:5
注 册:2007-5-22
收藏
得分:0 
以下是引用virusswb在2007-7-30 16:07:10的发言:

你的我看不明白,我的思路是,你要重新建立一个数组,暂时存放前面的,然后把后面的放入前面,在把临时的放入后面,这样应该可以。

我的思路也是啊

a2 a1分别放在a的前后


2007-07-30 16:18
a8451727
Rank: 1
等 级:新手上路
帖 子:238
专家分:5
注 册:2007-5-22
收藏
得分:0 
以下是引用virusswb在2007-7-30 16:09:24的发言:
for(j=s;j<max;j++){
*(array2+j)=*(p+j);
}
这里是不是就出问题了,是不是逻辑问题啊

哈哈哈,谢谢提醒,是这错了,是这样的:
for(i=0,j=s;i<max-s,j<max;i++,j++){
*(array2+i)=*(p+j);
}

for(i=0;i<max-s;i++){
*(array+i)=*(array2+i);
}


2007-07-30 16:24
快速回复:[求助3]指针,看下哪错了
数据加载中...
 
   



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

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