c语言:(指针)有n个整数,使前面各数顺序向后移动m个位置
#include<stdio.h>
#include<stdlib.h>
int main(){
void move(int *a,int n,int m);
int a[100];
int n,m,i;
scanf("%d%d",&n,&m); //输入n,m的值
for ( i = 0; i < n; i++)
{
scanf("%d",&a[i]);
}
move(a,n,m);
for ( i = 0; i < n - 1; i++) // n - 1 代表数值往后移一位
{
printf("%d",a[i]);
}
printf(" %d ",a[i]);//打印全部数字,如果不写这步,会因为n-1少一个数字
}
void move(int *a,int n,int m){
int temp[100]; //用来临时接收数字
int i;
for ( i = 0; i < n; i++)
{
temp[i] = a[i];
}
for ( i = 0; i < m; i++) //m代表要多少个移动数字
{
a[i] = a[n-m + i]; // n-m + i 代表数字往前移动
}
for ( i = m; i < n; i++)
{
a[i] = temp[i-m]; //总共要移动的数字 移动到 第一的位置
}
}
补充:输入m=3,代表的是8,9,10是n的后面几位数,m代表一个整体移动到最前面。