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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);

参考技术A #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);

参考技术B 你的核心函数写的有点问题,在主函数中的调用不需要再使用循环了,这是我写的代码,你看一下:

#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;

本回答被提问者采纳
参考技术C 第一:你main函数里的for循环时干啥的?
第二:fun函数的返回值没有东西接收啊

C语言中怎样输出自定义函数的输出

1.用C语言做一个函数,要求给定任意一个4位数,能够将其个位,十位,百位,千位,输出,尽可能的简单些.2.用C语言做一个函数,要求能够实现读取最大位是在什么位,最大位的数值是几?

1、首先输入调用系统函数的头文件,以及其他常用的语句。

2、然后定义一个【handle】这样的话柄。

3、接下来就可以将输出的话柄通过【GetStdHandle】传递给他。

4、此时,需要再定义一个【COORD】的pos光标变量。

5、接下来就要将这个输出的话柄以及光标位置赋值给他。

6、并加上输出语句后,这时就会发现,成功在中部输出来了,这样就完成了。

参考技术A

c语言中的函数可以分为有返回值的和没返回值的两种类型。

有返回值的的声明如下:

返回值类型 函数名(参数列表);

无返回值的返回值类型为void。


要输出函数的返回值,可以先把返回值复制给一个变量输出,也可以直接输出。


实例如下:

#include<stdio.h>

//返回两个数a和b中的较大者 
int max(int a,int b)

    return a>b? a:b;

int main()

    int a=2;
    int b=200;
    printf("%d\\n",max(a,b));//直接输出
    int m=max(a,b);
    printf("%d\\n",m);//通过变量 
    getchar();
    return 0; 

参考技术B 楼上给的程序有缺陷

我补充吧~~!

#include<stdio.h>
void aaa(int a)
int x,y,z,e;
x=a/1000;
y=a/100%10
z=a/10%10
e=a%10;
printf(%d%d%d%d,x,y,z,e);

main()
int b;
scanf(%d,b);
if(b>=1000&&b<=9999)
aaa(b);


要是有不懂的在线交流啊~~!本回答被提问者采纳
参考技术C #include <stdio.h>
#include <stdlib.h>
int main()
int num;
void fun(int);
printf("输入一个四位数:\n");
scanf("%d",&num);
fun(num);
system("pause");
return 0;

void fun(int a)
while(a)
printf("%d,",a%10);
a/=10;



第二个
#include <stdio.h>
#include <stdlib.h>
int main( )
void fun(long);
long num;
scanf("%ld",&num);
fun(num);
system("pause");
return 0;

void fun(long a)
int i=0,j=1,max=0;
while(a)

i++;//i表示数字中位数的增加
if(max<a%10)

max=a%10;
j=i;//j表示最大值的位数,从右到左第几位

a/=10;

printf("max:%d,no.:%d",max,j);
参考技术D `1 void aaa(int a)
int x,y,z,e;
x=a/1000;
y=a/100%10
z=a/10%10
e=a%10;
printf(%d%d%d%d,x,y,z,e);

main()
scanf(%d,b);
aaa(b);

以上是关于C语言 通过自定义函数 寻找并返回数组最大值的位置下标 最大值有多个时 输出第一个最大值的下标的主要内容,如果未能解决你的问题,请参考以下文章

c语言如何写一个自定义函数,随意输入n个数,求出这n个数中的最大值

c语言中,定义一个函数,函数输出结果是一个数组,整个的形式是怎么样的?

go语言:数组

c语言中怎么调用自定义函数

在c语言中自定义了一个函数,在main中调用时提示找不到标识符,怎么办?

C语言中怎样用指针找出一维数组中的最大值和最小值并输出它们的下标