为什么没法正常运行?
#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");
} 因为前两个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]