kk_阿白 2021-10-28 08:55 采纳率: 20%
浏览 39
已结题

关于#c语言#的问题,请各位专家解答!

p=&tip[0],q=&tap[0];
for(i=n-m; i<n; i++)
{
*p=a[i];
p++;
}
for(i=0; i<n-m; i++)
{
*q=a[i];
q++;
}
为何数组tip前m项是数组a的前m项而不是后m项
/*附上原代码
#include<stdio.h>
#include<malloc.h>
void ringShift(int *a, int n, int k);
int main(void)
{
int n,i,k;
scanf("%d",&n);
int temp;
temp=(int
)malloc(sizeof(int)*n);
for(i=0; i<n; i++)
scanf("%d",&temp[i]);
scanf("%d",&k);
ringShift(temp,n,k);
return 0;
}
void ringShift(int *a, int n, int k)
{
int i,m;
int *p,*q,*w;
m=k%n;
int *tip,tap;
tap=tip=(int
)malloc(sizeof(int)*n);
p=&tip[0],q=&tap[0];
for(i=n-m; i<n; i++)
{
*p=a[i];
p++;
}
for(i=0; i<n-m; i++)
{
*q=a[i];
q++;
}
for(i=0; i<m; i++)
printf("%d",tip[i]);
}

  • 写回答

1条回答 默认 最新

  • CSDN专家-link 2021-10-28 08:56
    关注

    如果是
    for(i=0;i<m;i++)
    {
    *p = a[i];
    p++;
    }
    才是前m项

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月5日
  • 已采纳回答 10月28日
  • 修改了问题 10月28日
  • 修改了问题 10月28日
  • 展开全部