阿Cxi 发表于 2021-1-16 23:25:18

关于指针与数组结合问题

        int *p;
void f(int arr[],int n)
{
        int k,i=9,j=9-i;
        p = arr;
        for(k=0;j>i;i--)
        {
                k=*(p+i);
                *(p+i)=*(p+j);
                *(p+j)=k;
        }
       
       
}
void main()
{
        int array={3,7,9,11,0,6,7,5,4,2};
        f(array,10);
        printf("%d",*(p+1));
       
}
不知道我这样写问题在哪,为什么不能实现小甲鱼老师的两两数字对调,有无大神指点一下,多谢

阿Cxi 发表于 2021-1-16 23:51:26


检查出来了一处错误,函数中for(i=0;i<5;i++)
不过还是不行

4goodworld 发表于 2021-1-17 15:39:48

本帖最后由 4goodworld 于 2021-1-17 21:19 编辑

两两数字对调
这是啥意思?
是让 3,7,9,11,0,6,7,5,4,2
变成 2,4,5,7,6,0,11,9,7,3这样子吗?

void f(int* arr, int n)
{
        int k, i = 9, j = 9 - i;
       
        for (; j < i; i--,j++)
        {
                k =arr;
                arr = arr;
                arr = k;
        }


}
void test24()
{
        int array = { 3,7,9,11,0,6,7,5,4,2 };
        f(&array, 10);
        for (int k = 0; k < 10; k++)
        {
                printf(" %d",array );


        }
       

}
页: [1]
查看完整版本: 关于指针与数组结合问题