为何最小值永远是0

#include<stdio.h>

void minmax(int a[],int len,int *max,int *min);

int main(void)

{

int a[10];

int max,min,j;

for(j=1;j<=10;j++)

{

scanf("%d",&a[j]);

}

minmax(a,sizeof(a)/sizeof(a[0]),&max,&min);

printf("max=%d,min=%d",max,min);

void minmax(int a[],int len,int *max,int *min)

{

int i;

*max=*min=a[0];

for(i=1;i<len;i++)

{

if(a[i]>*max)

{

*max=a[i]; 

if(*min>a[i])

{

*min=a[i];

}

}

 } 


程乎乎
浏览 1733回答 3
3回答

皓韵儿

你在输入的时候是从下标1开始输入的,a[0]是没有的,但是后来你在比较时又给*max=*min=a[0]; ,所以肯定会出错,要么你把输入时从0开始,要么你 *max=*min=a[1];  是a[1];  有什么问题可以再问我。

我是王先森灬

1、全程无赋值2、所有循环都应该从0开始

程乎乎

j应该初始值为0
打开App,查看更多内容
随时随地看视频慕课网APP