指针比较大小为什么最大值会返回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;
}
}
} num写成了num。。。
#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]