要求找出n个数的最大值和最小值,代码运行的不太对,求看看错误在哪

#include<stdio.h>
int main(void)
{
int N,i,a[i],max,min;
scanf("%d",&N);
for(i=1;i<=N;i++)
{
scanf("%d",&a[i]);
max=a[1];
min=a[1];
if(a[i]>max)
{
max=a[i];
}
if(a[i]<min)
{
min=a[i];
}
}
printf("max=%d,min=%d",max,min);
return 0;

}

没必要用数组,代码修改如下:

#include<stdio.h>
int main(void)
{
    int N,i,a,max,min;
    scanf("%d",&N);
    for(i=1;i<=N;i++)
    {
        scanf("%d",&a);
        if(i==1)
        {
            max = a;
            min = a;
        }else
        {
            if(max < a)
                max = a;
            if(min > a)
                min = a;
        }
        
        
    }
    printf("max=%d,min=%d",max,min);
    return 0;

}

int a[i] 这个编译不过吧 得写定值 比如 int a[200]; 我觉得200个够了 谁不怕手酸 一个一个输入那么多
for(i=1;i<=N;i++) 改成 for(i=0;i<N;i++) 数组脚标是从0开始的 max=a[1];改成max=a[0]; min=a[1];改成min=a[0];
在开头给 max赋值-4,294,967,295这样 min赋值4,294,967,296这样

#include <stdio.h>
void main(){
int data[10],i=0,max=0,index=0;
for(i=0;i<10;i++){
scanf("%d",&data[i]);
}
for(i=0;i<9;i++){
if(i==0){
max=data[i]>data[i+1]?data[i]:data[i+1];
index=max==data[i]?i:i+1+1;
}else{
max=max>data[i+1]?max:data[i+1];
index=max==data[i+1]?i+1+1:index;
}
}
printf("max=%d \nindex=%d\n",max,index);
}

获取到的是最大值,最小值自己想想补出来