jw010703 发表于 2021-3-30 11:40:52

数组最大值的位置--指针做函数参数

前面函数部分是已经给定的
问题是运行函数的返回值是不对的 数据读的是正确的
希望友友们看看问题出在哪里

#include <stdio.h>
int max(int *p,int n)
{
        int i,k=0;
        for(i=1;i<n;i++)
                if(p<p)//p等价于*(p+k)
                        k=i;
        return k;
}

int main()
{
        int *p,a,n,k;
        for(p=a;p<a+10;p++)//从键盘输入10个数
                scanf("%d",p);
        for(p=a;p<a+10;p++)
                printf("%d,",*p);
        printf("\n");
        k=max(p,10);
        printf("%d\n",k);
        printf("最大值为:%d,位置为第%d个",a,k+1);
        printf("\n");
        return 0;
}

jackz007 发表于 2021-3-30 13:45:24

本帖最后由 jackz007 于 2021-3-30 13:47 编辑

      k=max(a,10);// 不可以用 p,因为 p 指向的是 & a,而不是 & a。
页: [1]
查看完整版本: 数组最大值的位置--指针做函数参数