[Programming Challenge] 질문있습니다.
VE
평소 C언어를 배우기만 하고 깊게 공부해야지해야지 생각만 하고 있다
짬이 생겨서 Programming Challenge 책을 풀고있는데요..
시작부터 쉽지않네요..ㅋㅋ
질문있습니다.
Chap.01 - 문제 3 / 여행문제
입력
표준입출력을 통해 여러번의 여행에 대한 정보가 입력된다. 각 여행은 여행에 참가한 학생 수를 나타내는 정수 n으로 구성된다. 이 정수 밑으로는 n개의 줄이 입력되는데 각 줄에는 달러와 센트 단위로 각 학생이 지출한 경비가 입력된다. 학생 수는 1000명을 넘지 않으며 어떤 학생도 $10,000.00 이상 지출하지 않는다. 마지막 여행에 대한 정보 다음 줄에는 0만 들어있는 줄이 입력된다.
출력
각 여행에 대해 각 학생이 사용한 금액이 똑같아지기 위해(1센트 단위 내에서) 전달되어야 하는 금액의 총 합을 출력한다.
입력 예
3
10.00
20.00
30.00
4
15.00
15.01
3.00
3.01
0
출력 예
$10.00
$11.99제가 짠 코드로는 여기서 나오는 예는 다 맞게 나오고, 얼추 생각나는 것들로 계산해보면 맞게 나오는데요..
채점기에 돌려보니까 자꾸 Wrong Answer 뜨네요;;;
제가 짠 코드는 이렇습니다.
#include stdio.h
#include stdlib.h
#include math.h
#define MAX_NUM 1000
int main()
{
float n;//1000명 이하
int i;
float money[MAX_NUM+2];
float avg=0, sum=0;
float all=0;
float tot=0;// 전달되어야하는 금액의 총합
while(scanf(%f,&n)==1)
{
avg=0;sum=0;tot=0;all=0;//초기화
if(!n || n1000)
break;//입력된 사람수가 0이면 break
for(i=0;in;i++)
{
money[i]=0;//초기화
scanf(%f,&money[i]);
money[i]=100*money[i];//1센트단위로 계산
sum=sum+money[i];
}
avg=sum/n;//센트 평균
for(i=0;in;i++)
{
all=all+(int)(money[i]-avg);
tot=tot+(int)(abs(money[i]-avg));//1센트단위 계산
}
tot=(tot-all)/2;
printf($%.2f\n,tot/100);
}
return 0;
}무엇이 잘못되었는지..한참을 고민해도 모르겠네요.. ㅠㅠ흑흑