晓觉懿 发表于 2020-6-30 19:41:55

为什么没法正常运行?

#include<stdio.h>
main()
{
            int *p,*q,a,b,i;
                p=&a;
          q=b;
                printf("please input array a:\n");
        for(i=0;i<5;i++)
                scanf("%d",p++);
        printf("please input array b:\n");
        for(i=0;i<5;i++)
                scanf("%d",q++);
               
                printf("array a is:\n");
                for(i=0;i<5;i++)
                printf("%5d",*p++);
                printf("\n");
                printf("array b is:\n");
                for(i=0;i<5;i++)
                printf("%5d",*q++);
                printf("\n");
}

sunrise085 发表于 2020-6-30 20:07:09

因为前两个for循环后,指针p和q都改变了。你没有重新让这两个指针指向数组a和数组b,所以输出两个矩阵的时候就出错了。
#include<stdio.h>
main()
{
    int *p,*q,a,b,i;
    p=&a;
    q=b;
    printf("please input array a:\n");
    for(i=0;i<5;i++)
      scanf("%d",p++);
    printf("please input array b:\n");
    for(i=0;i<5;i++)
      scanf("%d",q++);
               
    //下面这两个是重新给指针p和q赋值为数组a和数组b
    p=&a;
    q=b;
   
    printf("array a is:\n");
    for(i=0;i<5;i++)
      printf("%5d",*p++);
    printf("\n");
    printf("array b is:\n");
    for(i=0;i<5;i++)
      printf("%5d",*q++);
    printf("\n");
}
页: [1]
查看完整版本: 为什么没法正常运行?