#include
#include
void reverse(int p,int *q)
{
int j=0,i=0,N=8,k=N/2;
for(;j<=N-1;j++) //雷德算法
{
*(p+j)=(q+i);
while(k<=i)
{
i=i-k;
k=k/2;
}
i=i+k;
k=N/2;
}
}
int main()
{
int a[]={1,2,3,4,5,6,7,8};
int b,*c,i;
b=a;
c=(int)malloc(sizeof(int)*8);
reverse(c,b);
for(i=0;i<8;i++)
printf("%d",*(c+i));
return 0;
}
編譯沒問題,運行也沒提示出錯,但就是一直卡在那,光標閃爍,沒有顯示結果,求大神解答
#include <stdio.h>
#include <stdlib.h>
void reverse(int *p,int *q) {
int j=0,i=7,N=8;
for(;j<=N-1;j++, i--) {
*(p+j) = *(q+i);
}
}
int main()
{
int a[]={1,2,3,4,5,6,7,8};
int *b,*c,i;
b=a;
c=(int *)malloc(sizeof(int)*8);
reverse(c,b);
for(i=0;i<8;i++)
printf("%d ",*(c+i));
putchar('\n');
free(c);
return 0;
}
反轉沒那麼復雜吧