真假悟空
求大神找出错误在哪里,为什么这两个代码输出的结果不同?#include<stdio.h>
int main()
{
int array[10];
int i,j,n,m,arrayend;
int *p;
printf("how many numbers do you want to input\n");
scanf("%d",&n);
printf("how many sites do you want to move\n");
scanf("%d",&m);
printf("please input %d numbers\n",n);
for(i=0;i<n;i++)
scanf("%d",&array[i]);
for(i=0;i<m;i++)
{
arrayend=*(array+n-1);
p=array+n-1;
for(j=n-1 ; j>0 ; j--)
{
*p=*(p-1);
p--;
}
*p=arrayend;
}
printf("after moving:\n");
for(i=0;i<n;i++);
printf("%d",array[i]);
printf("\n");
return 0;
}
#include <stdio.h>
int main(void)
{
int array[10];
int i,j,n,m,arrayend;
int *p;
printf("输入共有多少个数字:");
scanf("%d",&n);
printf("需要后移多少位:");
scanf("%d",&m);
printf("请依次输入%d个数:\n",n);
for(i=0;i<n;i++) /*输入数据*/
scanf("%d",&array[i]);
for(i=0;i<m;i++)
{
arrayend=*(array+n-1); /*保存指针*/
p=array+n-1; /*指针赋值*/
for(j=n-1;j>0;j--) /*循环移动*/
{
*p=*(p-1);
p--;
}
*p=arrayend; /*回复指针*/
}
printf("输出移动后的%d个数:\n",n);
for(i=0;i<n;i++)
printf("%d ",array[i]);
printf("\n");
return 0;
}