对于这个C语言问题为什么此代码会出现如图的问题


#include<stdio.h>
int main() 
{
    int num[]={1,2,3,4,5,6,7,8,9},*p,*q,temp;
    int sum,i,j;
    
    p=num;
    q=&num[6];
    
    for(i=0;i<3;i++)
    {
        temp=*p;
        *p=*q;
        *q=temp;
        p++,q++;
    }
    p=num;
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        {
            printf("%d",*p);
            q++;
            printf(" ") ;
        }
        printf("\n");
    }
    for(i=0;i<9;i+=3)
        {
            printf("%d ",num[i]*num[i+1]*num[i+2]);
        }
    return 0;
}

img


不知道问题出在哪里了,希望能得到代码回复,谢谢
问题原要求如下

img

下面双层for循环里的q++应该是p++

img

修改后运行结果:

img

22行你输出 * p,但p在循环中一直没有改变,所以一直输出数组的第一个元素7,改成 *p++

看了一遍,结果跟代码一致,又哪里不懂吗

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632