Cool_Breeze 发表于 2020-1-15 13:59:39

关于指针的问题?

#include <stdio.h>
#include <stdlib.h>
#define MAX 10
int main(void)
{
        int i,arr,*pa;
        pa=arr;
        for (i=0;i<MAX;i++) pa=rand();
        for (i=0;i<MAX;i++) printf("%-5d ",pa);//打印原数组;
        putchar('\n');
        int conversion(int *);
        conversion(pa);
        for (i=0;i<MAX;i++) printf("%-5d ",pa);//前后倒置后打印数组;
}
int conversion(int *pa)
{
        int *p,tem,*pa2,*i=pa,stop=(MAX/2);         //指针变量p=数组的中点,pa2=数组的最后一个元素,i=数组名;
        p=pa+stop,pa2=pa+MAX-1;

        for (;i<=p;i++,pa2--)
        {
                tem=*i;
                *i=*pa2;
                *pa2=tem;
        }
}
//数组第五个元素与第六个元素没有调换位置???
//求大佬找一下代码问题!!!非常感谢!

sunrise085 发表于 2020-1-15 14:06:55

conversion()函数中的for循环,结束条件写错了多换了一次.
0<->9,1<->8,2<->7,3<->6,4<->5,5<->4
i<=p改为i<p

Cool_Breeze 发表于 2020-1-15 14:00:23

41    18467 633426500 19169 15724 11478 29358 26962 24464
24464 26962 29358 11478 19169 15724 26500 633418467 41
--------------------------------
Process exited after 0.01479 seconds with return value 0
请按任意键继续. . .

页: [1]
查看完整版本: 关于指针的问题?