C++数组的问题 求一算法

如定义一个数组inta[6]={1,22,13,44,55,6,3,4,5,45}怎样写一个算法能将其倒置过来inta[6]={45,5,4,3,6,55,44,13,2... 如定义一个数组 int a[6]={1,22,13,44,55,6,3,4,5,45} 怎样写一个算法能将其倒置过来int a[6]={45,5,4,3,6,55,44,13,22,1} 展开
 我来答
Mr_Gnice
推荐于2016-05-25 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:59
采纳率:0%
帮助的人:84.8万
展开全部
#include <iostream>

using namespace std;

int main()
{
    int a[10]={1,22,13,44,55,6,3,4,5,45};
    for (int i = 0 ; i != sizeof(a)/sizeof(int)/2 ; ++i)
    {
        swap(a[i],a[sizeof(a)/sizeof(int)-i-1]);
    }
    for (int i = 0 ; i != 10 ; ++i)
    {
        cout << a[i] << " ";
    }
}


标准库有swap函数,可调换两个变量的值,也可以自己写一个类似的函数。有疑问可追问。

White_MouseYBZ
2014-08-22 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:7362万
展开全部
6个元素的数组a怎么能放下10个数?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
连理懿
2014-08-22 · TA获得超过257个赞
知道答主
回答量:204
采纳率:0%
帮助的人:139万
展开全部
前面五个和后面五个对应交换位置就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
清赏无涯8
2014-08-22 · 超过13用户采纳过TA的回答
知道答主
回答量:25
采纳率:0%
帮助的人:26万
展开全部
最简单的方法:再定义一个数组,将原数组从最后一个元素开始向前赋给新建的数组,最后再将这个赋好值的数组,赋给原数组,用两个for循环就搞定了

麻烦一点的话,就使用临时变量赋值的方法,将首尾交换,可以采用指针,两个指针,一个指尾,一个指头,交换之后,指针的位置加一,减一。都很容易

void reverse(int a[],int n){
int *p=a,*q=a+n-1;
int temp;
while(p<q){
temp=*p;
*p=*q;
*q=temp;
p++;
q--;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fluffysnake
2014-08-22
知道答主
回答量:15
采纳率:0%
帮助的人:17.4万
展开全部
int i = 0;
int j = 5;
while(i < j){
int tmp = a[i];

a[i] = a[j];
a[j] = tmp;

i++;

j--;

}

也可以用stack但那样还需要额外空间
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式