| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 586 人关注过本帖
标题:哪位大师给帮忙做个程序啊。。。(移动问题)
只看楼主 加入收藏
Angel乖乖
Rank: 1
等 级:新手上路
帖 子:70
专家分:3
注 册:2011-5-14
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
哪位大师给帮忙做个程序啊。。。(移动问题)
写一个程序实现对长度为n的整型数组向左移动一个位置。
1).形参不加const;
2).形参加const.



谢谢啦。。。。。。
搜索更多相关主题的帖子: 移动 位置 
2011-09-21 22:05
Angel乖乖
Rank: 1
等 级:新手上路
帖 子:70
专家分:3
注 册:2011-5-14
收藏
得分:0 
啊啊啊啊啊啊啊
2011-09-21 22:48
xg5699
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:140
专家分:522
注 册:2011-7-27
收藏
得分:0 
程序代码:
#include<iostream>
using namespace std;
const int n=10;
void changeleft(int a[],int n);
void show(int a[],int n);
void main()
{
    int a[n]={1,2,3,4,5,6,7,8,9,10};
    changeleft(a,n);
    show(a,n); 
}
void changeleft(int a[],int n)
{
      for(int i=1;i<n;i++)
          a[i-1]=a[i];
}
void show(int a[],int n)
{
    for(int i=0;i<n;i++)
         cout<<a[i];
    cout<<endl;
}
加const
程序代码:
#include<iostream>
using namespace std;
const int n=10;
int* changeleft(const int a[],const int n);
void show(const int a[],const int n);
void main()
{
    int a[n]={1,2,3,4,5,6,7,8,9,10};
    show(changeleft(a,n),n); 
}
int* changeleft(const int a[],const int n)
{
       int b[::n]={0};
      for(int i=0;i<n;i++)
          b[i]=a[i];
      for(int i=1;i<n;i++)
          b[i-1]=a[i];
      return b;
}
void show(const int a[],const int n)
{
    for(int i=0;i<n;i++)
         cout<<a[i];
    cout<<endl;
}



我不太理解题目的意思也是瞎编的,不知道对不对



[ 本帖最后由 xg5699 于 2011-9-22 09:39 编辑 ]

都不结贴我郁闷那!
2011-09-22 09:32
Angel乖乖
Rank: 1
等 级:新手上路
帖 子:70
专家分:3
注 册:2011-5-14
收藏
得分:0 
回复 3楼 xg5699
为什么老有一个错误用vc++编译
2011-09-22 15:24
xg5699
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:140
专家分:522
注 册:2011-7-27
收藏
得分:0 
回复 4楼 Angel乖乖
汗 你把错误报告发上来,我用的是Microsoft Visual Studio 2005编译的,2个程序都没问题可以运行的

都不结贴我郁闷那!
2011-09-22 15:38
Angel乖乖
Rank: 1
等 级:新手上路
帖 子:70
专家分:3
注 册:2011-5-14
收藏
得分:0 
说<iostream>没定义
2011-09-22 15:40
xg5699
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:140
专家分:522
注 册:2011-7-27
收藏
得分:20 
回复 6楼 Angel乖乖
不是这个错误,我去VC试了下,VC6.0编译器不像2005,应该是不支持临时对象的返回,我重新编译了一下在外部定义就可以了,vc6.0上测试通过
程序代码:
#include<iostream>
using namespace std;
const int n=10;
int* changeleft(const int a[],int b[],const int n);
void show(const int a[],const int n);
int b[n]={0};
void main()
{
    int a[n]={1,2,3,4,5,6,7,8,9,10};
    show(changeleft(a,b,n),n);
    return;
}
int* changeleft(const int a[],int b[],const int n)
{
   
      for(int i=0;i<n;i++)
      {
          b[i]=a[i];
      }
      for(int j=1;j<n;j++)
      {
          b[j-1]=a[j];
      }
      return b;
}
void show(const int a[],const int n)
{
    for(int i=0;i<n;i++)
         cout<<a[i];
    cout<<endl;
}
如果你觉得这样做不符合题目要求,那么也可以直接这样
程序代码:
#include<iostream>
using namespace std;
const int n=10;
void changeleft(const int a[],const int n);

int b[n]={0};
void main()
{
    int a[n]={1,2,3,4,5,6,7,8,9,10};
    changeleft(a,n);
    return;
}
void changeleft(const int a[],const int n)
{
    int b[::n]={0};
      for(int i=0;i<n;i++)
      {
          b[i]=a[i];
      }
      for(int j=1;j<n;j++)
      {
          b[j-1]=a[j];
      }
      for(int k=0;k<n;k++)
      {
         cout<<b[k];
      }
    cout<<endl;
}

//也可以将show函数定义到changeleft前面并在changeleft函数里面调用show函数,方法有很多,美女给个分儿
VC6.0对模扳的支持没2005好,所以编译我都喜欢用2005



[ 本帖最后由 xg5699 于 2011-9-22 18:33 编辑 ]

都不结贴我郁闷那!
2011-09-22 16:03
Angel乖乖
Rank: 1
等 级:新手上路
帖 子:70
专家分:3
注 册:2011-5-14
收藏
得分:0 
回复 7楼 xg5699
    ,好了   万分感谢。。。。
2011-09-22 18:54
快速回复:哪位大师给帮忙做个程序啊。。。(移动问题)
数据加载中...
 
   



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

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