楼主,我的程序如下。函数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;
}
下面我用C++来写。
#include
using namespace std;
int max(int ,int);
int main{
int n,maxnumber;
cin>>n;
int v[];
for (int i=0;i
cin>>v[i]}
maxnumber=v[0];
for(i=1;i
cout<
cout<
int max(inta,intb){
return a>b?a:b}
注意:其实C++的语言和C基本上一样.
int n;//下标值.设为全局变量
int findmax(int array[],int len)
{
int max;
max=array[0];
for(int i=1;i
if(max
max=array[i];
n=i;
}
}
return max;
}
#include
int
max(int
arr[],int
n)
{
int
i;
int
row=0;
int
m
=
arr[0];
for(i=1;i
if(arr[i]>m)
{
m=arr[i];
row=i;
}
}
return
row;
}
int
main()
{
int
arr[]={1,2,3,4,5,7,3,5,2,3};
int
maxIndex=max(arr,10);
printf("%d\t%d",maxIndex,arr[maxIndex]);
return
0;
}
#include
void fun(int a[],int n)
{
int i,max,xiabiao;
for(i=0;i
xiaobiao=0;
for(i=1;i
max=a[xiabiao];
printf("%d %d",max,xiabiao);
}
main()
{
int array[],num;
scanf("%d",&num);
fun(array[],num);
}