c语言问题 帮忙看看 谢谢了
编写MaxRow函数 求3*3数组每行最大值和对角线上最大值。我的哪里错了呢?谢谢
#include<stdio.h>
void main()
{
int *MaxRow(int(*)[3],int*);
int a[3][3],i,j,*b,c[4];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",*(a+i)+j);
b=MaxRow(a,c);
for(i=0;i<4;i++)
printf("%5d",*(b+i));
}
int *MaxRow(int(*p)[3],int*pc)
{
int i,j;
for(i=0;i<3;i++)
{
*pc=**(p+i);
for(j=0;j<3;j++)
if(*pc<*(*(p+i)+j))
*pc=*(*(p+i)+j);
pc++;
}
*pc=**p;
for(i=0;i<3;i++)
if(*pc<*(*(p+i)+i))
*pc=*(*(p+i)+i);
return(pc);
}
答案:b=MaxRow(a,c);//返回的地址是在c的地址上进行过自增的
for(i=0;i<4;i++)
printf("%5d",*(b+i));//printf("%5d",*(c+i));
上一个:C语言——指针。
下一个:C语言问题