C语言程序改错:数组

来源:百度知道 编辑:UC知道 时间:2024/06/14 05:56:29
#include<stdio.h>
#define N 3
void main()
{
double a[N],min,max;
int i,j;
for(i=0;i<N;i++)
scanf("%f",&a[i]);
min=a[0];
max=a[0];
for(j=0;j<N;j++)
{
if(a[j]>max)
max=a[j];
if(a[j]<min)
min=a[j];
}
printf("min=%f\n",min);
printf("max=%f\n",max);

}
该程序数组为何定义为double型就会发生错误(输出的max与输出min发生错误),而改成float或者int却可以呢??

是因为scanf("%f",&a[i]); 的问题,%f表示输入的为float类型,而%lf才是double类型,但是printf咋没这么麻烦,%f既可以输出float类型,也可以输出double类型!

错误?我的编译器能编译你的代码