| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 485 人关注过本帖
标题:关于数组元素向后移
只看楼主 加入收藏
丘汤媚
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2013-12-12
结帖率:25%
收藏
已结贴  问题点数:20 回复次数:2 
关于数组元素向后移
#include<iostream>
using namespace std;
int main()
{
 int i,k,t,s[10]={1,2,3,4,5,6,7,8,9,10};
 for(i=0;i<10;i++)
     cout<<s[i]<<' ';
 cout<<endl;
 for(k=0;k<3;k++)
 {   t=s[9];
     for(i=9;i<=1;i--)
         s[i]=s[i-1];
     s[0]=t;
 }
 for(i=0;i<10;i++)
     cout<<s[i]<<' ';
 cout<<endl;
 return 0;
}
我想输出的是8,9,10,1,2,3,4,5,6,7,但是只输出10,2,3,4,5,6,7,8,9,10
搜索更多相关主题的帖子: 元素 
2014-03-03 21:09
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:10 
程序代码:
#include <stdio.h>

int main()
{
    int t[10]={1,2,3,4,5,6,7,8,9,10};
    int tmp[3];
    int i;
    for(i=7;i<10;i++) tmp[i-7]=t[i];
    for(i=9;i>2;i--) t[i]=t[i-3];
    for(i=0;i<3;i++) t[i]=tmp[i];
    for(i=0;i<10;i++) printf("%3d",t[i]);
    printf("\n");
    return 0;
}

DO IT YOURSELF !
2014-03-03 21:40
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:10 
程序代码:
#include <iostream>
#include <iterator>
#include <algorithm>

int main()
{
    int s[] = {1,2,3,4,5,6,7,8,9,10};

    ///////////////////////////////////////
   

    const size_t n = sizeof(s)/sizeof(s[0]);

    std::copy( s+0, s+n, std::ostream_iterator<int>(std::cout," ") );
    std::cout << std::endl;

    std::rotate( s+0, s+7, s+n );

    std::copy( s+0, s+n, std::ostream_iterator<int>(std::cout," ") );
    std::cout << std::endl;

    return 0;
}

如果你想知道 std::rotate 可以直接看其源代码,我大致讲解一下:
a. 求 移动距离 和 总长度 的 最大公约数
b. 循环 最大公约数 次,每次以 最大公约数 为步长环形移动一下
2014-03-04 08:56
快速回复:关于数组元素向后移
数据加载中...
 
   



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

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