gd6179 2018-06-30 14:10 采纳率: 100%
浏览 520
已采纳

函数问题请教,请大神帮忙解答

本人菜鸟水平,请尽量在程序语句详细注释。谢谢!

编写一个名为RoTaTaRead的函数,它将数组的浮点数和数组的大小作为参数,并将数组的元素向左旋转一个。这意味着数组的第一个元素应该被旋转到数组的末尾。不允许在函数体内部声明数组。例如,调用数组(5, 7, 1,9, 0)上的函数将旋转它并将其更改为[ 7, 1, 9,0, 5 ]。

  • 写回答

5条回答 默认 最新

  • _肆 2018-07-03 01:06
    关注

    纯C语言,不知道你要求的是啥

    #include "stdio.h"
    #include "string.h"
    
    float *function(float *in, int length)//要求返回一个数组,所以只能用指针函数 
    {
        float *out=(float *)malloc(sizeof(float)*length);
        //创建一个局部变量指针,用于处理数据,由于长度是未知的,所以用指针可以使函数适用于一切长度 
        //malloc用于给指针分配内存,不然程序会报错 
        int i = 0;//i用于循环 
    
        for (i = 0; i<length-1; i++)//将旧数组的[1]~[length-1]移到新数组的[0]~[length-2] 
        {
            out[i] = *(in+1+i) ;//左移后的数放到局部变量 ,只剩下最后一个 
        }
        out[i] = *in;//让旧数组的[0]移到新数组的[length-1],完成左移 
        return out;//返回左移后的数组 
    }
    
    void main()
    {
        float aa[5] = { 1.1, 2.2, 3.3, 4.4, 5.5 };//举个例子试验一下 
        float bb[5] = { 0.0 };//初始化全零 
        int i,len=sizeof(bb)/sizeof(float);//用于循环打印 
    
        memcpy(bb, function(aa, 5), sizeof(float)*len);//将左移后的数组赋值给bb 
        for(i=0;i<len;i++)//打印 
        {
            printf("%.5f  ",bb[i]);
         } 
        getch();//暂停以显示 
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置