楼主,我的程序如下。函数max读入一个n元素的数组a,返回其中最大元素的地址。这样,在调用max的函数中(这里是main),可以通过两种运算分别得到最大元素的值和它的下标(见main中注释)
#include
int
*
max(int
*
a,
int
n)
{
int
i;
int
*
p
=
a;
for
(
i
=
0;
i
<
n;
i++
)
if
(
a[i]
>
*p
)
p
=
a+i;
return
p;
}
int
main(void)
{
int
a[10];
int
i;
int
*
ans;
printf(
"Please
input
ten
integers:\n"
);
for
(
i
=
0;
i
<
10;
i++
)
scanf(
"%d",
a+i
);
ans
=
max(a,
10);
/*
ans中现在存的是数组a中最大元素的地址
*/
printf(
"The
index
is
%d,
the
max
is
%d\n",
ans-a,
*ans
);
/*
ans-a求得的是最大元素的下标,
*ans得到的最大元素的值
*/
return
0;
}
温馨提示:答案为网友推荐,仅供参考