栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【信息学奥赛一本通】2035:【例5.2】平移数据(详细代码)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【信息学奥赛一本通】2035:【例5.2】平移数据(详细代码)

【信息学奥赛一本通】将a数组中第一个元素移到数组末尾,其余数据依次往前平移一个位置。

【题目描述】

将a数组中第一个元素移到数组末尾,其余数据依次往前平移一个位置。

【输入】

第一行为数组a的元素个数;

第二行为n个小于1000的正整数。

【输出】

平移后的数组元素,每个数用一个空格隔开。

【输入样例】
10
1 2 3 4 5 6 7 8 9 10
【输出样例】
2 3 4 5 6 7 8 9 10 1

在完成输出任务的基础上,可以更改o的值来决定整体向左平移几位

【代码1】

思路:不动数组本身,根据题目要求输出
#include
int main(){
    int x,i,o=1;//o决定数组输出时整体平移几位 
    scanf("%d",&x);//有几个数据 
    int a[x];
    for(i=0;i         scanf("%d",&a[i]);
    for(i=o;i         printf("%d ",a[i]);    
    for(i=0;i         printf("%d ",a[i]);
    return 0;
}

【代码2】

思路:借助数组j[],将数组a[]内容平移,在依次输出数组a[]内容

#include
int main()
{
    int x,i,o=1,j[o];//o决定从向左平移几位, j[o]用来保存数组a[]前o位数据
    scanf("%d",&x); // x代表有几个数据
    int a[x];
    for(i=0;i         scanf("%d",&a[i]);
    for(i=0;i         j[i]=a[i];        
    for(i=0;i         a[i]=a[i+o];
    for(i=0;i         a[(x-o)+i]=j[i];
    for(i=0;i         printf("%d ",a[i]);
    return 0;
}
【代码3】

思路:在给数组赋值时就平移o位给数组a[]赋值,再正常输出

#include
int main()
{
    int x,i,o=1,j[o];//o决定从向右平移几位, j[o]用来保存数组a[]前o位数据
    scanf("%d",&x); // x代表有几个数据
    int a[x];
    for(i=0;i         scanf("%d",&a[x-o+i]);
    for(i=0;i         scanf("%d",&a[i]);
    for(i=0;i         printf("%d ",a[i]);
    return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/289636.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号