为什么我的最大值输出是3个怎么改为最大的一个

#include <stdio.h>
int main() {
int j,x,i,a[10]={12,15,1,2,3,4,5,58,96,87};
int min,max;
min=a[0];
for(i=1;i<=9;i++)
{
if(a[i]<min){
min=a[i];
x=i;
printf("最小值:%d ",a[i]);
printf("最小值的下标%d:\n",x);
}

}
    max=a[0];
for(i=1;i<=9;i++){
        if(a[i]>max){
            max=a[i];
            x=i;
printf("最大值:%d  ",a[i]);
        printf("最大值的下标%d:\n",x);
}    
        }

return 0;
}

img

把最大值和最小值的printf输出的这几行都放到for的外面

倒数第二行输出改为min,因为你定义的是min为最小值,每次循环也是把较小值赋值给min了
注意两个输出语句要放在循环外面,输出最终最小值的结果即可

#include <stdio.h>
int main()
{
    int j,x,i,a[10]={12,15,1,2,3,4,5,58,96,87};
    int min,max;
    min=a[0];
    for(i=1;i<=9;i++)  
    {
        if(a[i]<min)
        {
            min=a[i];
            x=i;
        }
    }
    printf("最小值:%d \n",min);
    printf("最小值是第%d个,其下标为:%d\n",x+1,x);
    return 0;
}

img