https://www.acmicpc.net/problem/4344
4344๋ฒ: ํ๊ท ์ ๋๊ฒ ์ง
๋ํ์ ์๋ด๊ธฐ๋ค์ 90%๋ ์์ ์ด ๋ฐ์์ ํ๊ท ์ ๋๋๋ค๊ณ ์๊ฐํ๋ค. ๋น์ ์ ๊ทธ๋ค์๊ฒ ์ฌํ ์ง์ค์ ์๋ ค์ค์ผ ํ๋ค.
www.acmicpc.net
๋ฌธ์
๋ํ์ ์๋ด๊ธฐ๋ค์ 90%๋ ์์ ์ด ๋ฐ์์ ํ๊ท ์ ๋๋๋ค๊ณ ์๊ฐํ๋ค. ๋น์ ์ ๊ทธ๋ค์๊ฒ ์ฌํ ์ง์ค์ ์๋ ค์ค์ผ ํ๋ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์๋ ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์ C๊ฐ ์ฃผ์ด์ง๋ค.
๋์งธ ์ค๋ถํฐ ๊ฐ ํ ์คํธ ์ผ์ด์ค๋ง๋ค ํ์์ ์ N(1 ≤ N ≤ 1000, N์ ์ ์)์ด ์ฒซ ์๋ก ์ฃผ์ด์ง๊ณ , ์ด์ด์ N๋ช ์ ์ ์๊ฐ ์ฃผ์ด์ง๋ค. ์ ์๋ 0๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 100๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์์ด๋ค.
์ถ๋ ฅ
๊ฐ ์ผ์ด์ค๋ง๋ค ํ ์ค์ฉ ํ๊ท ์ ๋๋ ํ์๋ค์ ๋น์จ์ ๋ฐ์ฌ๋ฆผํ์ฌ ์์์ ์ ์งธ ์๋ฆฌ๊น์ง ์ถ๋ ฅํ๋ค.
๋ฌธ์ ํ์ด
- test case ๋งํผ scanf๋ฅผ ๋ฐ๋๋ฐ, ์ ์ผ ๋จผ์ ๋ฐ๋ ์ซ์๋ฅผ ํ์์ std์ ๋ฃ๊ธฐ
- std๋งํผ int ๋ฐฐ์ด ์ ์ธํ๊ณ sum์ ์ซ์ ๋ฃ๊ธฐ
- ํ๊ท ์ ๊ตฌํ๊ณ , ์ซ์๋ฐฐ์ด์ for๋ฌธ์ผ๋ก ๋ค์ ํ์ผ๋ฉด์ ํ๊ท ๊ตฌํ๊ธฐ
- ์์ ์ ์งธ์๋ฆฌ๊น์ง ๊ตฌํ๊ธฐ ์ํด 0.3lf
- %๋ฅผ ํ๋ ์ถ๋ ฅํ๊ธฐ ์ํด์๋ %%๋ฅผ ํด์ผ ํ๋ค.
- cnt/std *100์ ํ๋ฉด cnt์ std๊ฐ int์ด๋ฏ๋ก ์์ double๋ก ํ์ ๋ณํ์ ํด์ค์ผ ํ๋ค. (์๊ทธ๋ฌ๋ฉด ์ค๋ฅ๋จ)
๐ก %์ถ๋ ฅํ๊ธฐ ์ฐธ๊ณ
http://mwultong.blogspot.com/2006/11/c-printf-print-percent-sign.html
C์ธ์ด] printf ํจ์์์, ํผ์ผํธ ๊ธฐํธ(๏ผ ) ์ถ๋ ฅ ๋ฐฉ๋ฒ; Print Percent Sign
mwultong.blogspot.com
C code
#include <math.h>
#include <stdio.h>
int main()
{
int c; //test case
int std; //student number
int cnt; //higher score than mean
int sum; //sume
double avg; //avg
scanf("%d",&c);
for(int i=0; i<c; i++){
cnt =0;
sum =0;
avg = 0.0;
scanf("%d",&std);
int score[std];
for(int j=0; j<std; j++){
scanf("%d",&score[j]);
sum += score[j];
}
avg = sum/std;
for(int k=0; k<std; k++){
if(avg < score[k]){
cnt++;
}
}
printf("%0.3lf%%\n",((double)cnt/std)*100 );
}
return 0;
}