首页 > 其他分享 >指针练习N个数后移M个位置

指针练习N个数后移M个位置

时间:2024-05-19 12:18:22浏览次数:12  
标签:arr int void 个数 后移 include 指针

有N个整数,使前面各数顺序向后移动M个位置,最后M个数变成最前面M个数。

#include<stdio.h>
#include<math.h>
void Move(int *arr,int n,int m);
int main(void){
   int arr[10]={99,88,77,66,55,44,33,22,11,0};
   printf("before move:\n");
    for(int i=0;i<10;i++)
    printf("%d ",arr[i]);
       printf("\n");

   Move(arr,10,5);
   printf("after move:\n");
for(int i=0;i<10;i++)
    printf("%d ",arr[i]);

   printf("\n");
}

void Move(int *arr,int n,int m){

    int *p=(int *)malloc(sizeof(int)*m);
    if(p==NULL){printf("memory error.");return;}

    int i,j;
   for(i=n-m,j=0;i<n,j<m;i++,j++)
        *(p+j)=arr[i];

   for(i=n-1;i>=m;i--){
        arr[i]=arr[i-m];
   }

    for(i=0;i<m;i++)
        arr[i]=*(p+i);

    free(p);
    return;
}

标签:arr,int,void,个数,后移,include,指针
From: https://www.cnblogs.com/zhongta/p/18200213

相关文章

  • 指针练习输入十个数
    将最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:1.输入10个数。2.进行处理。3.输出10个数。#include<stdio.h>#include<math.h>voidInput(int*arr);voidChange(int*arr);voidOutput(int*arr);intmain(void){Input(arr);Change(arr);......
  • C语言中多维数组和多重指针的区别
    比如下面这段代码:charstr[3][3]={"aa","bb","cc"};char**p=str;char*s1=str[0];char*s2=p[0];有什么问题?我们来看实际的内存布局,str是一个多维数组,它的尺寸实际上是3*3=9个char。也就是一共8bit*9=72bit,而在一台64位机器上,一个char*的大小就是64位,所以对......
  • 结构体中的指针&&拷贝赋值构造函数改造
    带有成员指针的结构体的拷贝1.问题使用结构体时,在析构时发生了**重复释放指针**的错误。2.原因定义了QList<结构体>,使用append添加结构体对象并未此结构体中的指针分配了空间,append会执行值拷贝,此时会创建新的副本添加进QList中,值得注意的是:append执行拷贝时并不会分配地......
  • “她”来了,陪伴赛道巨变!为GPT-4o加上你的一个数字分身
    OpenAI的每次发布,感觉都会干翻一个行业。昨晚GPT-4o的发布,情感陪伴这个赛道像是又要掀起一番惊天巨变。各位创业老板们摩拳擦掌,无数创意精英又要踏入新的征程。开源社区一定也异常兴奋,相信Huggingface和Github马上又会孕育出新宠,大家都期待做出AI时代的SuperApp,至少也要是一个Ki......
  • 2024-05-15:用go语言,考虑一个整数 k 和一个整数 x。 对于一个数字 num, 在其二进制表示
    2024-05-15:用go语言,考虑一个整数k和一个整数x。对于一个数字num,在其二进制表示中,从最低有效位开始,我们计算在x,2x,3x等位置处设定位的数量来确定其价值。举例说明,若对于x=1,num=13,则二进制表示为000001101,对应的价值为3。又如,当x=2,num=13,二进制表示依然为000001101,但对......
  • 指针压缩
    1查看$java-XX:+PrintCommandLineFlags-version -XX:-UseCompressedClassPointers-XX:-UseCompressedOops-XX:+UseCompressedClassPointers-XX:+UseCompressedOops 2 JDK1.8之后默认开启这两个压缩当堆内存小于4G时,不需要启用指针压缩,jvm会直接去除高32位地址......
  • C语言第五篇-指针
    什么是指针指针是内存中一个最小单元的编号,也就是地址平时口语中说的指针,通常指的是指针变量,是用来存放内存地址的变量指针变量我们可以通过&(取地址操作符)取出变量的内存其实地址,把地址可以存放到一个变量中,这个变量就是指针变量#include<stdio.h>intmain(){prin......
  • 代码随想录算法训练营第六天 | 242.有效的字母异位词 、349. 两个数组的交集、 202.
    哈希表理论基础建议:大家要了解哈希表的内部实现原理,哈希函数,哈希碰撞,以及常见哈希表的区别,数组,set和map。什么时候想到用哈希法,当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。这句话很重要,大家在做哈希表题目都要思考这句话。文章讲解:https://program......
  • Leedcode-最大连续 1 的个数
    自己写的:fromtypingimportListclassSolution:deffindMaxConsecutiveOnes(self,nums:List[int])->int:#初始化最大连续1的计数器和临时连续1的计数器count=0temp=0#获取列表长度n=len(nums)#初......
  • 同单元格内计算加号个数(Power Query)
    问题:一个单元格内若干个加号,计算其个数//非M版let源=Excel.CurrentWorkbook(){[Name="表1"]}[Content],复制的列=Table.DuplicateColumn(源,"名称","名称-复制"),按分隔符拆分列=Table.ExpandListColumn(Table.TransformColumns(复制的列,{{"名称-......