C语言对于有n个整数的数组,使其前面各数顺序向后移m个位置,让最后m个数变成最前面的m个数!

C语言对于有n个整数的数组,使其前面各数顺序向后移m个位置,让最后m个数变成最前面的m个数!
请高手看看我哪里错了。。
#include
#define N 10
int main()
{
int a[N],i,j,k,m,temp;
printf("请输入%d个数字:",N);
for(i=0;iscanf("%d",&a[i]);
printf("输入需要前移的数字的个数:");
scanf("%d",&m);
for(i=N-m,k=0;i{
temp=a[i];
for(j=N-m-1;j<=k;j--)
{
a[j+1]=a[j];
}
a[k]=temp;
}
for(i=0;iprintf("%d ",a[i]);
}
处晌贺仔理这个问题的方法有好多写法,关键看你是一次移动一个位置还是多个位置
要是一个位置,那么只要设一个tmp变量就好
要是一次移动多个位置,那么就要再设置一个数组

一次移动一个位置,宴汪那么循环移动m次就好了,拍裂
for(i=0;i{
tmp=a[0];

for(j=0;j a[i]=a[i+1]
a[N-1]=tmp;
}

要是移动多个位置,那么最好重新赋值一个数组
for(i=0;i b[i+N-m]=a[i];
for(i=m;i b[i]=a[i-m];
#include
#define N 10
int main()
{
int a[N],i,j,k,m,temp;
printf("请输晌灶让入%d个数字:",N);
for(i=0;i scanf("%d",&a[i]);
printf("输入需要前移的数字的个数:宴局");
scanf("%d",&m);
for(i=N-m,k=0;i {
temp=a[i];
for(j=i-1;j>=k;j--) //上面把m--删了,这辩慎里用j=i-1代替,其余不变,可以实现题目要求
{
a[j+1]=a[j];
}
a[k]=temp;
}
for(i=0;i printf("%d ",a[i]);
}
← 上一篇: 下一篇: →