#include
int main() {
int G(int *s);
int a[5][5]= {1,2,3,4,5,6,7,8,9,955,265,6,36,154,9116,56,98,74,54};
int *p;
p=&a[0][0];
printf("%d",G(p));
return 0;
}
int G(int *s) {
int i=0,n,m;
for(; i<=5; i++) {
n=0;
for(m=*s; n<5; n++)
if(m<=s[i][n]) m=s[i][n];
}
return m;
}
m=*s你应该在双循环开始前赋值,不能在内层for循环中赋值啊。那样前面几次循环找最大值都白找了么
另外s是int *类型,你是不能用s[i][n]二维数组方式访问的啊。循环也写错了,修改如下:
#include<stdio.h>
int main() {
int G(int *s);
int a[5][5]= {1,2,3,4,5,6,7,8,9,955,265,6,36,154,9116,56,98,74,54};
int *p;
p=&a[0][0];
printf("%d",G(p));
return 0;
}
int G(int *s) {
int i=0,n,m=*s;
for(; i<5; i++) {
n=0;
for(; n<5; n++)
if(m<=*(s+5*i+n) )
m=*(s+5*i+n);
}
return m;
}