평균에서 센트 이하 단위를 짜르는걸 생각 못해서 한참 당황했습니다.
위키에 옮기니 탭정렬이 잘 안돼네요;;
~cpp
#include <iostream>
using namespace std;
void main(){
//변수
double stu[1000] = {0.0}; //입력을 저장한다.
double endSum[10] = {0.0}; //결과값을 저장한다.
double sum = 0; //각여행에서 사용한 금액의 총합
double aver = 0; //각여행에서 사용한 금액의 평균
double stuN = 0; //각여행에 입력할 학생수
int travelN = 0; //여행 수
//임시변수
int i, tempIntAver;;
double tempInput;
i=tempInput=0; //임시변수 초기화
//입력부
cin>>stuN; //처음으로 학생수를 입력받는다.
while( stuN ){ //입력되는 학생수(stuN)이 0이될때까지 루프를 돈다.
for(i=0; i<stuN; i++){
//여행경비를 입력받는다.
cin>>tempInput;
stu[i] = tempInput; //각학생의 경비정보를 저장한다.
sum += tempInput; //합을 누적합계한다.
}
//평균 = 지출내용 / 참가학생수
tempIntAver = (sum * 100) / stuN; //센트단위까지만 계산하기 위한 조치.
aver = tempIntAver/100;
cout<<aver<<endl;
//결과값 처리부
for(i=0; i<stuN; i++){
if( aver > stu[i] ){ //이 학생(stu[i])가 평균보다 돈을 덜 냈다면
endSum[travelN] += ( aver - stu[i] ); //평균에서 stu[i]를 빼 결과값에 누적시킨다.
cout<<endSum[travelN]<<endl;
}
}
cin>>stuN; // 다음 여행의 학생수를 입력받는다. 0이라면 루프가 종료된다.
aver = sum = 0; // 이번 여행경비 산출에 사용된 임시변수들을 초기화 시킨다.
travelN++; // 총 여행 수를 증가시킨다.
}
//결과 출력부
for(i=0; i<travelN; i++){
cout<<"$";
cout<<float(endSum[i])<<endl;
}
}