[실기] 11. 합계와 평균


합계와 평균


설명


  • 합계와 평균


문제


  • 다음과 같은 조건에서 휴대폰 고객 1명이 한 달 동안 사용하는 총 통화시간을 토데로 일일 평균 통화시간(초)을 구하는 알고리즘을 구하여라
    • 한 달은 30일 이다. 매일(i)의 통화시간은 변수 T(i)에 저장된다.
    • 만일 일일 통화시간이 200초 이하이면 무료 서비스이며 총 통화시간, 평균 통화시간 산정을 제외한다.


문제공략


  • 평균(AVG)을 구하는 문제이므로 합계(SUM)를 구한 뒤 개수(N)로 나누면 된다.
  • T(30): 30일 동안의 일일 통화시간을 보관하는 베열 변수
  • SUM: 일일 통화시간이 200초를 초과한 날들의 총 통화시간 변수
  • N: 일일 통화시간이 200초를 초과한 날의 수


C언어

#include<stdio.h>

int main() {

	int T[30] = {
		184, 160, 255, 290, 300, 275, 180, 100, 195, 145
		, 190, 265, 245, 280, 185, 110, 180, 290, 295, 190
		, 193, 268, 145, 123, 431, 159, 182, 294, 198, 176
	};
	int SUM = 0; //일일 200초 넘은 날 총 통화시간
	int N = 0;   //일일 200초 넘은 날 수
	int i = 0;
	double AVG = 0;
	while(1) {
		if (T[i] > 200) {
			SUM += T[i];
			N++;
		}
		i++;
		if (i>=30) break;
	}
	AVG = (double) SUM/N;
	printf("%d\n", AVG);
};


JAVA

public class Main {
	public static void main (String[] args) {

    	int T[] = {
    	    184, 160, 255, 290, 300, 275, 180, 100, 195, 145
    	    , 190, 265, 245, 280, 185, 110, 180, 290, 295, 190
    	    , 193, 268, 145, 123, 431, 159, 182, 294, 198, 176
    	};
        int SUM = 0; //일일 200초 넘은 날 총 통화시간
    	int N = 0;   //일일 200초 넘은 날 수
    	int i = 0;
    	double AVG = 0;
    	while(true) {
    	    if (T[i] > 200) {
	            SUM += T[i];
	            N++;
    	    }
    	    i++;
    	    if (i>=30) break;
    	}
    	AVG = (double) SUM/N;
    	
    	System.out.println(AVG);
	}
}