注册 登录
编程论坛 C语言论坛

用函数找最值及地址,找最大值出了问题,大佬帮忙看看

秋叶映月 发布于 2018-12-17 21:55, 1348 次点击
/*编程实现findmax函数,返回一维数组中的最大元素及其地址值和下标值*/
#include<stdio.h>
#include<stdlib.h>
void findmax(int a[]);
int max,*pointer_1,*pointer_2,n;
int main()
{
    int a[10],i,j;
        printf("请输入数值1-10:");
    for(i=0;i<10;i++)
        scanf("%d",&a[i]);
    findmax(a);
        printf("max=%d\n",max);
        printf("pointer_1=%d\n",pointer_1);
        printf("n=%d\n",n);
    system("pause");
    return main();
}
void findmax(int a[10])
{
    int i,j,max=0,n=0;
    for(i=0;i<10;i++)
        if(a[i]>max)
            {
            max=a[i];
            n=i;
             }
        pointer_1=&a[i];
}

程序执行后,max一直为零,无论是输入什么数,求解惑

[此贴子已经被作者于2018-12-17 22:57编辑过]

2 回复
#2
豆豆的滴2018-12-17 22:58
int恒定义c语言的默认值是0吧
#3
秋叶映月2018-12-18 08:32
[quote]以下是引用秋叶映月在2018-12-17 21:55:53的发言:

/*编程实现findmax函数,返回一维数组中的最大元素及其地址值和下标值*/
#include<stdio.h>
#include<stdlib.h>
void findmax(int a[]);
int max,*pointer_1,*pointer_2,n;
void findmax(int a[10])
{
    int i,j,max=0,n=0;
    for(i=0;i<10;i++)
        if(a>max)
            {
            max=a;
            n=i;
             }
        pointer_1=

谢谢你,真是一语惊醒梦中人啊
我将void findmax里面的max和n删掉后就行了,
1