배열의 최댓값과 최솟값 차이 구하기
Hotpants
질문 제목 :
자료유형 double형 1차원 배열에서 가장 큰 값과 가장 작은 값의 차이를
반환하는 함수를 만들어 결과를 알아보는 프로그램을 작성하시오.
이대로 시행해 봤더니 함수 세가지중에 첫 번째 함수밖에 시행이 안 됩니다.
제 생각엔 두번째나 세번째 함수에 문제가 있는것 같은데 지적해 주시면 감사하겠습니다.질문 내용 :
#include stdio.h
double maxaray(double *a,int size);
double minaray(double *a,int size);
double printaray(double a,double b);
int main(void)
{
int i;
double aray[10];
int araysize=sizeof(aray)/sizeof(aray[0]);
for(i=0;i10;i++)
scanf(%lf,&aray[i]);
printf(%lf\n,maxaray(aray,araysize));
printf(%lf\n,minaray(aray,araysize));
printf(%lf\n,maxaray(aray,araysize)-minaray(aray,araysize));
return 0;
}
double maxaray(double a[],int size)
{
int i;
double max=a[0];
for(i=1;i=size;i++)
{
max =(max=a[i])?max:a[i];
}
return max;
}
double minaray(double a[],int size)
{
int i;
double min=a[0];
for(i=1;i=size;i++)
{
min =(min=a[i])?min:a[i];
}
return min;
}
double printaray(double a,double b)
{
return a-b;
}
-
모아
C#으로 간지가 좀되서 정확한기억은 안나지만 로직상으로는 큰문제가없어 보이네요 scanf에서 배열에 넣을때 저렇게 하는게맞는지는 조금 햇깔리지만...max가 정상적으로 동작하신다면...