求出数组的最大元素在数组中的下标并存放在 k 所指的存储单元中。帮我看看错在哪了,只能改Fun函数

#include<stdio.h>
void Fun(char *a,int t,int *k)
{
int i,n=0;
for(i=0;i<t;i++)
if(a[n]<a[i])
n=i;
*k=n;
}
int main()
{
int a[10],k,i;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
Fun(a,10,&k);
printf("%d%d\n",k,a[k]);
return 0;
}

#include <conio.h>

#include <stdio.h>

#include <stdlib.h>

int fun(int *s,int t,int *k)

{

int i;

int max;

max=s[0];

*k=0;

for(i=1;i<t;i++)

if(s[i]>max)

{ //循环体用括弧包成整体

max=s[i];

//*k=i-1; 此处已经是数组元素下标,不需减1

*k=i;

}

//return s[*k]; //因传入指针,不需再返回值

return 0;

}

void main()

{

//FILE *wf;

int a[10]={ 876,675,896,101,301,401,980,431,451,777},k;

system("CLS");

fun(a, 10, &k);

printf("%d, %d\n ", k, a[k]);

/******************************

wf=fopen("out.dat","w");

fprintf (wf,"%d, %d", k, a[k]);

fclose(wf);

*****************************/

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-12-01

void Fun(int a[10],int t,int *k)

{

int i,n=0;

for(i=0;i<t;i++)

if(a[n]<a[i])

n=i;

*k=n;

}

定义一个数组才对

相似回答