2401_87809983 2024-10-02 22:13 采纳率: 33.3%
浏览 4
已结题

这个程序为什么运行之后会出现一个问号?是乱码吗

img

img


想知道这个程序问题出在哪里啊就是想用指针移除数组的第三个元素,但是运行以后在最后会打印出一个问号,问了AI说是乱码,这是为什么?⊙ω⊙

  • 写回答

1条回答 默认 最新

  • fengbizhe 2024-10-02 22:24
    关注

    你报错的原因估计是因为p[j+1]导致数组越界,因为循环是j<6,你这样写会出现输出p[7]的情况,还有你移除数组第三个元素的思路有些问题,

    #include<iostream>
    using namespace std;
    int main()
    {
        char *p=new char[6];
        for(int i=0;i<6;i++)
        cin>>p[i];
        for(int j=0;j<6;j++)
        {
            if(j==2)
            continue;//你不想输出第三个元素,就直接跳过p[2]就好,
            cout<<p[j]<<" ";
        }
        delete []p;
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月14日
  • 已采纳回答 10月6日
  • 创建了问题 10月2日