[실기] 11. 합계와 평균
in 정보처리기사 on 기사 실기 알고리즘
합계와 평균
설명
- 합계와 평균
문제
- 다음과 같은 조건에서 휴대폰 고객 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);
}
}
- 웹컴파일러에서 프로그래밍 연습하기
- [이기적] 정보처리기사 무료영상 내용 참고
- [이기적] 정보처리기사 실기 책 내용 참고