泡面君 发表于 2019-4-22 21:04:05

求十个数中的最大最小值,大佬看看哪错了,为什么没有输出结果

#include<stdio.h>

int *max,*min;

main()
{
        int max_min(int *p ,int n);
        int num={1,12,3,2,2,3,123,12,1232,433};
        max_min(num,10);         //跳入取最大最小值的函数
        printf("%d%d",*max,*min);
}

int max_min(int *p,int n)
{
        max=min=p;
        for(p;p<p+n;p++)//进行比较,值存放在指针里面
        {
                if(*max<*p)
                max=p;
                else if(*min>*p)
                min=p;
        }
}

jackz007 发表于 2019-4-22 21:25:06

#include<stdio.h>

int * max , * min ;

void max_min(int * p , int n)
{
      int i                              ;
      max = min = p                        ;
      for(i = 0 ; i < n ; i ++ , p ++) {
                if(* p > * max) max = p      ;
                else if(* p < * min) min = p ;
      }
}

main()
{
      int num[] = {1 , 12 , 3 , 2 , 2 , 3 , 123 , 12 , 1232 , 433} ;
      max_min(num , 10)                                          ;
      printf("%d%d" , * max , * min)                           ;
}

泡面君 发表于 2019-4-22 21:34:05

jackz007 发表于 2019-4-22 21:25


为什么for里面直接比较地址不行

jackz007 发表于 2019-4-22 21:36:45

    这个逻辑表达式有可能为假吗?循环将没有终点,死循环。
p<p+n

泡面君 发表于 2019-4-23 11:00:58

jackz007 发表于 2019-4-22 21:36
这个逻辑表达式有可能为假吗?循环将没有终点,死循环。

有点道理哦
页: [1]
查看完整版本: 求十个数中的最大最小值,大佬看看哪错了,为什么没有输出结果