15533617457 发表于 2020-4-16 15:33:10

指针比较大小为什么最大值会返回16

#include<stdio.h>
void bijiao(int num,int len,int*max,int*min);
int main(void)
{
int num[]={1,10,20,30,40,50,60,70,80,90};
int max=0;
int min=0;
bijiao(num,sizeof(num)/sizeof(num),&max,&min);
printf("最大值位%d最小值为%d",max,min);

}
void bijiao(int num[],int len,int*max,int*min)
{
*max=*min=num;
for(int i=1;i<len;i++)
{
    if (num>*max)
    {
      *max=num;
    }
    if (num<*max)
    {
      *min=num;
    }   
}
}

倒戈卸甲 发表于 2020-4-16 16:10:59

num写成了num。。。

4goodworld 发表于 2020-4-16 16:16:25


#include<stdio.h>
void bijiao(int num,int len,int*max,int*min);
int test()
{
        int num[]={11,10,20,30,40,50,60,70,80,90};
        int max=0;
        int min=0;
        bijiao(num,sizeof(num)/sizeof(num),&max,&min);
        printf("最大值位%d最小值为%d",max,min);
        return 0;
       
}
void bijiao(int num[],int len,int* max,int* min)
{
        *max=num;
        *min=num;
        for(int i=0;i<len;i++)
        {
                if (num>*max)
                {
                        *max=num;
                }
                if (num<*min)
                {
                        *min=num;
                }   
        }
}


int main(void)
{

                test();
      system("pause");
        //getchar();
      return 0;
}

你的代码里面有几个错误:
len是参数,那么len传进去是10,不会变化的
然后比较大小的时候
max<len意味着max不是最大的
min>len意味着min不是最小的
页: [1]
查看完整版本: 指针比较大小为什么最大值会返回16