m0_75011820 2022-11-08 18:26 采纳率: 50%
浏览 122
已结题

大一新生在学习指针的道路上迷惑不已

img

img


死循环了,第一个图片是我数组的思路,第二个是指针的思路。就是数组中十个整数,把其中的0换到最后,其他的数字顺序保持不变。数组的筛查思路已经写出来了,转换成指针的时候就一直死循环

  • 写回答

3条回答 默认 最新

  • 快乐鹦鹉 2022-11-08 18:35
    关注
    void move(int *p,int n)
    {
        int i=0,j=0,count=0,*q = p;
        while(q<p+n-count)
        {
            if(*q == 0)
            {
                for(i=0;i<n-j-1;i++)
                    *(q+i) = *(q+i+1);
                count++;
            }
            else
            {
                q++;
                j++;
            }
        }
    }
    
    
    
    int main()
    {
        int a[10] = {1,2,3,0,9,8,0,0,9,0};
        move(a,10);
        for(int i=0;i<10;i++)
            printf("%d ",a[i]);
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月17日
  • 已采纳回答 11月9日
  • 创建了问题 11月8日