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]);
}

关于#c语言#的问题,请各位专家解答!
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- CSDN专家-link 2021-10-28 08:56关注
如果是
for(i=0;i<m;i++)
{
*p = a[i];
p++;
}
才是前m项本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报