for 循环语句
for 循环的疑惑题目:
C语言有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
#include<stdio.h>
#include<stdlib.h>
#define N 5
#define M 3
void main()
{
void move(int a[N],int n,int m);
int a[N],i;
printf("enter %d ge zhengshu:\n",N);
for(i=0;i<N;i++)
scanf("%d",(a+i));
move(a,N,M);
for(i=0;i<N;i++)
printf("%5d",a[i]);
}
void move(int a[],int n,int m)
{
int temp;
int *p,*a_end;
a_end=a+n-1;
temp=*(a_end);
for(p=a_end;p<a;p--) // 此处 p<a 单步调试上为何直接就跳过了 for循环
{
*(p)=*(p-1);
}
*a=temp;
m--;
if(m>0) move(a, n, m);
}