일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- On-chain
- 17119
- 카르테시
- 일본여행 #나고야 #일본 #일본맛집 #아스칸논신궁
- 블록체인
- 백준 17118
- 프로그래밍
- 그대로 출력하기
- 백준 알고리즘
- 10172
- 백준 10172
- #싸지방 유튜브
- 체인링크
- 컴퓨터 아키텍쳐
- #싸지방dns
- 설탈 배달
- #싸지방
- 클럭 주기
- 백준 2839번
- 백준
- 탈중앙화
- 백준 알고리즘 설탕
- 알고리즘
- 백준 2439번
- 백준 10172번
- 백준 1065번
- 2839번
- off-chain
- 클럭사이클
- 백준 17119
- Today
- Total
킵고잉
백준 알고리즘 4344번: 평균은 넘겠지 본문
오늘의 코딩 문제 평균은 넘겠지! 이거는 문제 출력은 문제가 없었는데 계속 틀렸다고 하니깐 열받아서 계속해서 해보니 자료형 때문에 틀렸다고 떴다. double 을 써야 맞는 문제... 도대체가!! 뭐가문제인거지?! float여도 큰문제 없는데! 아무튼 문제는 이렇다.
문제
대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.
입력
첫째 줄에는 테스트 케이스의 개수 C가 주어진다.
둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.
출력
각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.
예제 입력 1
5 5 50 50 70 80 100 7 100 95 90 80 70 60 50 3 70 90 80 3 70 90 81 9 100 99 98 97 96 95 94 93 91
예제 출력 1
40.000% 57.143% 33.333% 66.667% 55.556%
그리고 내가 한참 자료형 때문에 고민했던 소스다. 일단 처음에 double 자료 변형해줄때 괄호를 잘못씌운것과 %를 scanf에서 적용할때 어떻게 하는건지 찾아봤었다. 뭐 이런 사소한 것들 조금씩 기억해나가면서 문제풀면 언젠가는 실력이 늘겠지...!
#include <stdio.h>
int main() {
int a = 0, num = 0, score[1000] = {0}, sum = 0, count = 0;
scanf("%d", &a);
for(int i = 0; i < a; i ++){
scanf("%d", &num);
for(int i =0; i < num; i++){
scanf("%d", &score[i]);
sum += score[i];
}
double avg = (double)sum / num;
sum = 0;
count = 0;
for(int i = 0; i < num; i++){
if(score[i] > avg){
count++;
}
}
printf("%.3lf%%\n", (double)count *100 / num);
}
}
'백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 17118번, 17119번: 그대로 출력하기 (0) | 2018.08.29 |
---|---|
백준 알고리즘 1110번: 더하기 사이클 (0) | 2018.08.27 |
백준 알고리즘 10817번: 세수 (0) | 2018.08.27 |
백준 알고리즘 10871번: X보다 작은수 (0) | 2018.07.04 |
백준 알고리즘 11720번 숫자의 합 (0) | 2018.07.02 |