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);
#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、并加上输出语句后,这时就会发现,成功在中部输出来了,这样就完成了。
参考技术Ac语言中的函数可以分为有返回值的和没返回值的两种类型。
有返回值的的声明如下:
返回值类型 函数名(参数列表);
无返回值的返回值类型为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语言中,定义一个函数,函数输出结果是一个数组,整个的形式是怎么样的?