循环后移,有n个整数,使前面的各数顺序向后移动m个位置,移出的数再从头移入。请修改错误。(开头的一个数据没了,其他的正常)
#include<stdio.h>
void f(int *s,int n,int *m)
{
int i,t,l,j;
for(i=0;i<*m;i++)
for(j=n-1;j>0;j--)
{
l=s[n];
t=s[j];
s[j] = s[j-1];
s[j-1] = t;
}
s[0] = l;
}
int main()
{
int i,n,a[99],m;
printf("请输入数字n:\n");
scanf("%d",&n);
printf("请输入%d个整数:\n",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("请输入一个数值m:\n");
scanf("%d",&m);
f(a,n,&m);
printf("各数按照顺序向后移动%d个位置为:\n",m);
for(i=0;i<n;i++)
printf("%d\t",a[i]);
return 0;
}