|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 张邦焱 于 2021-3-12 14:36 编辑
10个数找出最大值且找出最大值位置。
#include<stdio.h>
int main()
{
float max(float array[], int n);
float a[10], m;
int i, n;
n = 0;
printf("please input 10 numbers:\n");
for (i = 0; i < 10; i++)
scanf_s("%f", &a[i]);
m = max(a,n);
m = max(a, n);
printf("m=%f\nn=%d\n",m,n);
return 0;
}
float max(float array[], int n)
{
int i;
n = 0;
float m = array[0];
for (i = 1; i < 10; i++)
{
if (m<array[i])
{
m = array[i];
n = i;
}
}
return m;
return n;
}
这个有问题,不能同时return2个值。数组名做实参咋改比较好呢。
本帖最后由 jackz007 于 2021-3-12 14:56 编辑
为什么一定要返回 2 个值,返回最大值的数组索引不就好了?
- #include<stdio.h>
- int max(float array[])
- {
- int d , i ;
- for(d = 0 , i = 1 ; i < 10 ; i ++) {
- if(array[i] > array[d]) d = i ;
- }
- return d ;
- }
- int main(void)
- {
- float a[10] ;
- int i , n ;
- printf("please input 10 numbers:\n") ;
- for (i = 0; i < 10 ; i++) scanf_s("%f" , & a[i]) ;
- n = max(a) ;
- printf("m = %f\nn = %d\n" , a[n] , n) ;
- }
复制代码
编译、运行实况
- D:\0002.Exercise\C>g++ -o x x.c
- D:\0002.Exercise\C>x
- please input 10 numbers:
- 1 2 3 4 10 9 8 7 6 5
- m = 10.000000
- n = 4
- D:\0002.Exercise\C>
复制代码
|
|