3. 使用指针计算每行最大值,每列最小值
void Max(int (*p)[],int line,int row)
void Min(int (*p)[],int line,int row)
/*
3. 使用指针计算每行最大值,每列最小值
void Max(int (*p)[],int line,int row)
void Min(int (*p)[],int line,int row)*/
#include<stdio.h>
void Max(int (*p)[3],int line,int row)
{
int i,j;
int max;
for(i=0;i<line;i++)
{
max=*(*(p+i)+0);
for(j=0;j<row;j++)
{
if(max<=*(*(p+i)+j))
{
max=*(*(p+i)+j);
}
}
printf("第%d行最大值max=%d\n",i+1,max);
}
}
void Min(int (*p)[3],int line,int row)
{
int j,i,min;
for(j=0;j<row;j++)
{
min=*(*(p+0)+j);
for(i=0;i<line;i++)
{
if(min>=*(*(p+i)+j))
{
min=*(*(p+i)+j);
}
}
printf("第%d列最小值min=%d\n",j+1,min);
}
}
int main()
{
int a[3][3]={{5,9,1},{3,-9,7},{2,1,-8}};
int n=sizeof(a)/sizeof(a[0]);
int m=sizeof(a[0])/sizeof(a[0][0]);
Max(a,n,m);
Min(a,n,m);
return 0;
}
结果为:
2.使用指针计算每一列的和
void Sum(int (*p)[],int line,int row)
/*
2.使用指针计算每一列的和
void Sum(int (*p)[],int line,int row)*/
#include<stdio.h>
void Sum(int (*p)[3],int line,int row)
{
int i,j;
int sum;
for(j=0;j<row;j++)
{
sum=0;
for(i=0;i<line;i++)
{
sum+=*(*(p+i)+j);
}
printf("第%d列sum=%d\n",j+1,sum);
}
}
int main()
{
int a[][3]={1,2,3,4,5,6};
int n=sizeof(a)/sizeof(a[0]);
int m=sizeof(a[0])/sizeof(a[0][0]);
Sum(a,n,m);
return 0;
}
结果为: