Katelisa 2022-02-20 22:59 采纳率: 86.4%
浏览 40
已结题

shiftright函数实现将整型一维数组的元素依次循环后移一位,以下空格如何填写

shiftright函数实现将整型一维数组的元素依次循环后移一位,以下空格如何填写

img

  • 写回答

1条回答 默认 最新

  • yun6853992 2022-02-20 23:59
    关注

    你先试着自己写这个实现啊,不然这种问题你提到这,对自己学习意义不大。
    可以参考答案多多练习,必须多练习,不然理解不了。

    做这个题,你至少先得梳理实现这个逻辑的思路,然后根据有思路来梳理这个。

    1 2 3 4 5 ==>编程 5 1 2 3 4
    可以先保存数组最后下标的值,然后遍历前面的,依次从后往前重新赋值,然后最后把5赋值开始位置

    #include <stdlib.h>
    #include <stdio.h>
    
    void shiftright(float *a, int n)
    {
        int i;
        int t; //注意下面有个t变量
        t = *(a+n-1); //理解这个吗? 数组的指针+1的动作  a是数组起始地址,+n-1其实到最后一个位置了
        for(i = n-2; i>=0; i--) //已经保存最后一个变量了,要循环后移一位,是不是直接重新赋值
        {
            a[i+1] = a[i];//后移以为
        }
        a[0] = t; //把数组最后面的值赋值
    }
    
    int main()
    {
        int i;
        float arr[5] = {1,2,3,4,5};
    
        shiftright(arr, 5);
        for(int i=0; i<5; i++)
        {
            printf("%6.2f ", arr[i]);
        }
        printf("\n");
        return 0;
    }
    //输出是 : 5.00   1.00   2.00   3.00   4.00 
    ```c
    
    
    

    ```

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月1日
  • 已采纳回答 2月21日
  • 创建了问题 2月20日

悬赏问题

  • ¥15 MYSQL 多表拼接link
  • ¥15 关于某款2.13寸墨水屏的问题
  • ¥15 obsidian的中文层级自动编号
  • ¥15 同一个网口一个电脑连接有网,另一个电脑连接没网
  • ¥15 神经网络模型一直不能上GPU
  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
  • ¥20 wpf datagrid单元闪烁效果失灵
  • ¥15 券商软件上市公司信息获取问题
  • ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout
  • ¥15 Android studio AVD启动不了