二维数组问题,大家帮忙看看
#include <stdio.h>void main()
{
int a[3][4],*max,(*p)[4],*y,sum=0,*min,t,i;
printf("please input 12 data:\n");
for(max=min=*a,y=*a;y<*(a+3);y++)
{
scanf("%d,",y);
sum=sum+*y;
if(*max<*y)
max=y;
if(*min>*y)
min=y;
}
printf("总和=%d\n所有元素的最大值=%d\n所有元素的最小值=%d\n",sum,*max,*min);
for(p=a,i=1;p<a+3;p++,i++)
{
for(sum=0,y=min=max=*p;y<*p+4;y++)
{
sum=sum+*y;
if(*min>*y)
min=y;
if(*max<*y)
max=y;
}
printf("第%d行的总和=%d\n第%d行的最大值=%d\n第%d行最小值=%d\n",i,sum,i,*max,i,*min);
}
}
上面的程序是正确的,但是为什么把倒数第五行的max=y交换地址这一句换为t=*max,*max=*y,*y=t;交换值就不对了呢,会影响最小值的输出,求解释,谢谢。