#include<stdio.h>
int* solve(int* s,int n,int m)
{
int a[110];
int i,k;
for(i=m,k=0;i<n,k<n-m;i++,k++)
a[k]=s[i];
for(i=0,k=n-m;i<m,k<n;i++,k++)
a[k]=s[i];
return a;
}
int main(void)
{
int i,n,m,s[110];
int* ans;
scanf("%d%d",&n,&m);
for(i=0;i<n;i++)
scanf("%d",&s[i]);
ans=solve(s,n,m);
for(i=0;i<n;i++)
{
if(i==0)
printf("%d",*ans+i);
else
printf(" %d",*ans+i);
}
return 0;
}
#include<stdio.h>
int a[110];
int* solve(int* s,int n,int m)
{
int i,k;
for(i=m,k=0;i<n,k<n-m;i++,k++)
a[k]=s[i];
for(i=0,k=n-m;i<m,k<n;i++,k++)
a[k]=s[i];
return a;
}
int main(void)
{
int i,n,m,s[110];
int* ans;
scanf("%d%d",&n,&m);
for(i=0;i<n;i++)
scanf("%d",&s[i]);
ans=solve(s,n,m);
for(i=0;i<n;i++)
{
if(i==0)
printf("%d",*(ans+i));
else
printf(" %d",*(ans+i));
}
return 0;
}
局部变量在函数执行完成之后会自动释放,因此不应将局部变量的指针作为返回值
请问为啥a[110]要设置成全局变量
哦~(⊙o⊙)感谢