입력 코드
#include <stdio.h>
main() {
int N;
double M;
scanf("%d", &N);
int i;
double sum = 0.0, mean, ans;
double s[1000];
for (i = 0; i < N; i++) {
scanf("%lf", &s[i]);
sum += s[i];
}
M = s[0];
for (i = 0; i < N; i++) {
if (s[i] > M)
M = s[i];
else
M = M;
}
mean = sum / N;
ans = (double)mean * 100 / M;
printf("%lf\n", ans);
}
코드 설명
반복문, 조건문, 형식지정자 이용하는 문제
#include <stdio.h>
main() {
int N, M;
scanf("%d", &N);
int i, sum = 0, mean, ans;
int s[1000];
for (i = 0; i < N; i++) {
scanf("%d", &s[i]);
sum += s[i];
}
M = s[0];
for (i = 0; i < N; i++) {
if (s[i] > M)
M = s[i];
else
M = M;
}
mean = sum / N;
ans = mean * 100 / M;
printf("%d\n", ans);
}
처음에는 입력받은 점수를 문자열에 넣고 하나씩 비교하면서 최고점을 찾고, 어차피 모든 점수에 100/M을 곱하고 평균을 구하나 평균을 구하고 거기에 100/M을 곱하나 똑같으니까 평균을 구하고 그 값에 100/M을 곱했다.
그런데 소수점 제대로 출력이 되지 않았다. 형식지정자 때문에 몇 번을 계속 실패했다.
위에서 실수값을 받으면서 정수값을 받는 형식지정자로 받아서 그런 것 같았다.
문제 출처
1546번: 평균
첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보
www.acmicpc.net
'C' 카테고리의 다른 글
#27. [백준_C언어] 15596 : 정수 N개의 합 (0) | 2021.01.13 |
---|---|
#26. [백준_C언어] 4344 : 평균은 넘겠지 (0) | 2021.01.12 |
#24. [백준_C언어] 3052 : 나머지 (0) | 2021.01.11 |
#23. [백준_C언어] 2577 : 숫자의 개수 (0) | 2021.01.11 |
#22. [백준_C언어] 1110 : 더하기 사이클 (0) | 2021.01.09 |