findmax(int *a,int n)
{ int *p,*s;
for(p=a,s=a; p-a<n; p++)
if ( ) s=p;
return(*s);
}
main()
{ int x[5]={12,21,13,6,18};
printf("%d\n",findmax(x,5));
}
求最大值的,()内的条件我也不知道。麻烦解释下,谢谢咯
findmax(int *a,int n)
{ int *p,*s;
for(p=a,s=a; p-a<n; p++)
if ( ) s=p;
return(*s);
}
main()
{ int x[5]={12,21,13,6,18};
printf("%d\n",findmax(x,5));
}
求最大值的,()内的条件我也不知道。麻烦解释下,谢谢咯
findmax函数传递两个参数, 一个是数组首地址,一个是数组的长度.
findmax函数中指针p用来遍历数组. 指针s用来保存最大值. 初始化都为x[0];
利用数组的长度,以及数组的首地址,遍历数组, 每当找出一个比指针s指向的数大的值是, 就把该数的地址保存到s中.
遍历结束后, s保存的就是数组中最大数的地址.然后返回该数.(注意不是返回该数的地址.)
在findmax的遍历中, 用*s和数组中的每个数进行比较. 所以括号处应该填入的是*s<*p
因为比较的是数. 而不是地址.所以要解引用.