前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >移动数组,记得带上指针

移动数组,记得带上指针

作者头像
小Bob来啦
发布2020-12-16 14:31:56
5660
发布2020-12-16 14:31:56
举报
文章被收录于专栏:用户8057608的专栏

不点蓝字,我们哪来故事?

If the fear of ups in front of the rock, life can only ever be a backwater.

如果惧怕前面跌宕的山岩,生命就永远只能是死水一潭。

在学C语言的你,是否觉得指针简单呢,其实在一开始学习C语言的时候,小编也逛过许多论坛,看到写得最多的也是各种对指针的吐槽,直到前几天看了一次关于C++的直播,才发现指针真的没有大家说得那么难。

怎么说呢,指针简单来说也就是可以保存地址值的变量称为指针变量,因为指针变量中保存的是地址值,故可以把指针变量形象地比喻成地址箱。

那为什么到做题时会觉得很难呢,这很大程度上取决于你的老师给你出什么题,因为我看到那个清华直播讲师说的是很多老师在教C语言时其实是很无聊的,为什么呢,可能是太简单了哈,老师毕竟怎么说也是大佬级别的,教我们这些基础的可能也是没多大趣味

然后...为了增加难度,老师觉得学到后面就越来越有意思了,嗯嗯,那就随便把数据结构给你们先尝尝鲜呗,这一尝鲜...广大学生表示难啊,顿时对指针产生了怀疑

。加上什么数组,函数,一场从入门到放弃的表演就此上演

嘿嘿,故事就此打住,下面进入刷题模式:

任务描述

题目描述:有n个整数,要求你编写一个函数使其向右循环移动m个位置

编程要求

输入

输入n m表示有n个整数,移动m位

输出

输出移动后的数组

测试说明

样例输入:

10 5

1 2 3 4 5 6 7 8 9 0

样例输出:

6 7 8 9 0 1 2 3 4 5

源代码如下:

代码语言:javascript
复制
#include <stdio.h>
int main() {
    int m, n, sum;
    scanf("%d%d", &sum, &m);
    int q[sum];
    int *t = q;
    for (n = 0; n < sum; n++) {
        scanf("%d", t++);
    }
    t = q;
    for (n = 0; n < sum; n++) {
        if (n == (sum)) {
            printf("%d", *(t));
        } else {
            if (n < m) {
                printf("%d ", *(t + sum - m));//1.此处需要注意指向的地址
                t++;
                if (n == (m - 1)) {
                    t = q;//2.此处容易忽略
                }
            } else {
                printf("%d ", *t);
                t++;
            }
        }
    }
    return 0;
}

To:需要注意的是代码中第一处注释中指向的地址,小编记得一开始是写得*(t+m),后来发现只适合调换那种一半(比如:10个调换5个),花费了一些时间在上面,望大家不要再踩坑哦。

运行结果如下:

小编的代码仅供参考哦,此题的解法当然也不只一种,也可以用Python,C++等其他语言来解题,想要交流可加入学习群哦,在公众号后台C语言资源里即可找到哦。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员Bob 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 任务描述
  • 编程要求
  • 测试说明
相关产品与服务
云直播
云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档