C语言 通过自定义函数 寻找并返回数组最大值的位置下标 最大值有多个时 输出第一个最大值的下标

编写形如int fun(int arr[], int
t)的函数,形参t为数组元素个数。寻找并返回数组最大值的位置下标 最大值有多个时 输出第一个最大值的下标
在主函数main()中定义一维整型数组x,输入数组元素个数N,并且依据如下公式给数组各个元素赋值:
x[i] = N * sin(i
* 0.16) ; 0 < N < 1000
然后调用函数fun(int[], int),并将数组名x和整数N作为该函数的实参传入;函数调用完毕后输出该函数的返回值。

麻烦各位帮我看一下我的程序问题在哪里了

#include<stdio.h>
#include<math.h>
int fun(int a[1000], int t);

int fun(int a[1000], int t){
int i,max=0,N;
for (i=0;i<t;i++)
a[i]=N*sin(i*0.16);
{ if (a[i]>max)
max=a[i];
}
return i;

}
main(){
int x[1000];
int i,N;
scanf("%d",&N);
for(i=0;i<N;i++)
fun(x,N);
printf("%d",i);

}

第1个回答  2015-05-30
#include<stdio.h>
#include<math.h>

int fun(int a[1000], int t){
int i,max=0,N;
for (i=0;i<t;i++)
if (a[i]>a[max]) max=i;
return max;
}
main(){
int x[1000];
int i,N,maxid;
scanf("%d",&N);
for(i=0;i<N;i++) x[i]=N*sin(i*0.16);
maxid=fun(x,N);
printf("最大的数是:%d   下标: %d \n",x[maxid],maxid);
}

第2个回答  2015-05-30
你的核心函数写的有点问题,在主函数中的调用不需要再使用循环了,这是我写的代码,你看一下:

#include <stdio.h>
#include <math.h>

int fun(int a[1000],int t);

int fun(int a[1000],int t)
{
int i,max=0,num;
for(i=0;i<t;i++)
a[i]=t*sin(i*0.16);
max=a[0];
num=0;
for(i=0;i<t;i++)
{
if(max < a[i])
{
max=a[i];
num=i;
}
}
return num;
}

int main()
{

int x[1000];
int i,N;
scanf("%d",&N);
i = fun(x,N);
printf("%d\n",i);
return 0;

}本回答被提问者采纳
第3个回答  2015-05-30
第一:你main函数里的for循环时干啥的?
第二:fun函数的返回值没有东西接收啊