数组循环移动mci

#include <stdio.h>
int main()
{
	int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
	int m = 3;
	int n = sizeof(a) / 4;
	int i;
	int *p;
	
	for(i=0; i<m; i++){
		p = a + n-1;
	//保存10 
		int temp;
		temp = *p;
	//10前面的元素一次往后移动
		while(p>a){
			*p = *(p-1);
			p--;	
		}
	//把10放到第一个位置
		*p = temp; 
	}
	
	for(p=a; p<a+10; p++){
		printf("%-4d", *p);
	}
	
	printf("\n");
	return 0;
} 
  1. 思路:

    1先移动一次

    保存数组最后一个元素值

    将数组元素一次往后移动一个位置

    把保存的最后一个元素值放到数组第一个位置上

    2循环移动m次

  2. 用指针操作数组元素

  3. 数组名

    • 数组名存放的是地址,是常量(不可被赋值),不可更改,
  4. 多多尝试用指针操作数组

posted @   行至为成  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示