#include<stdio.h>
//函数原型
void rightshiftleft(int *p_num,int n,int m);
void enterint(int *p_num,int n);
//主函数
void main(){
int num[100] = {1,2,3,4,5},*p_num = num;
int n = 5,m = 2;
printf("Int =:");
scanf("%d",&n);
printf("M =:");
scanf("%d",&m);
//整数输入
enterint(p_num,n);
//数组左移
rightshiftleft(p_num,n,m);
for(int i = 0; i < n; i++){
printf("%-5d",p_num[i]);
}
}
//整数输入
void enterint(int *p_num,int n){
for(;n > 0 ; n--){
scanf("%d",p_num++);
}
}
//循环数组左移算法
void rightshiftleft(int *p_num,int n,int m){
//临时变量
int temp = 0;
//外层循环控制需要左移的次数
for(int k = 0;k < m ; k++){
temp = p_num[n - m + k];
//内层循环控制n-m的数组元素整体右移一位
for(int i = 0; i < n - m ; i++){
p_num[n -m -i+ k] = p_num[n - m -1 -i +k];
}
p_num[k] = temp;
}
}
c语言 数组循环左移m位
最新推荐文章于 2021-05-22 07:24:25 发布