성적통계 코드짜본거 틀린곳점 알려주세요ㅠ
카라
질문 제목 : 성적통계
질문 요약 :input.txt의 값에서 최대,최소,평균값,중앙값,최빈값을 구하시오.
평균,중앙값은 소수점이 있으면 반올림하여서 출력
최빈값이 여러개 일 경우 아무거나 출력
제코드에서 틀린 부분점 알려주세요;;
주어진 값에서는 다 정확하게 출력되는데
어느부분이 틀렷다고 채점 서버에 올리면 계속 뜨네요 ㅠ
질문 내용 :
입력
3 //테스트 케이스
20 //학생의 수
91 66 67 70 75 67 54 91 75 82 75 63 82 46 68 95 36 82 91 74 //시험정수들
10
90 90 90 90 90 85 85 85 85 85
1
95
학생의 수의 범위는 1~100
출력
95 36 73 75 75
90 85 88 88 85
95 95 95 95 95
제가 짠 코드
#include stdio.h
#include stdlib.h
void main(void)
{
FILE*inFile;
int testcases;
int i, nums, num1;
int n, m, k, j, b;
int count, average2, middle2;
float sum, average, middle, num2, num3;
int mode, freq;
int bubblesort[100];
inFile=fopen(input.txt,r);
if(inFile==NULL)exit(1);
fscanf(inFile, %d, &testcases);
for(i=0; itestcases; i++)
{
sum=0;
average=0;
middle=0;
fscanf(inFile, %d, &nums);
for(n=0; nnums; n++)
{
fscanf(inFile, %d, &num1);
bubblesort[n]=num1; //버블 정렬로 오름차순으로 배열에 정렬하는 부분
}
for(j=nums-1; j0; j--)
{
for(m=0; mnums-1; m++)
{
if(bubblesort[m]bubblesort[m+1])
{
num1=bubblesort[m];
bubblesort[m]=bubblesort[m+1];
bubblesort[m+1]=num1;
}
}
}
for(k=0; knums; k++) //평균값 구하는 부분
{
sum+=bubblesort[k];
}
average=sum/nums;
average2=((average+0.5)*10)/10;
num2=bubblesort[(nums/2)-1]; //중앙값 구하는 부분
num3=bubblesort[nums/2];
if(nums%2==0)
{
middle=(num2+num3)/2;
}
else
{
middle=num3;
}
middle2=((middle+0.5)*10)/10;
mode=bubblesort[0]; // 최빈값 구하는 부분
freq=1;
for(b=0; bnums; b++)
{
if(b)
{
if(bubblesort[b]==bubblesort[b-1])
{
count++;
}
else
{
if(countfreq)
{
freq=count;
mode=bubblesort[b-1];
}
count=1;
}
}
}
printf(%d , bubblesort[nums-1]); //출력하는 부분
printf(%d , bubblesort[0]);
printf(%d , average2);
printf(%d , middle2);
printf (%d , mode);
printf(\n);
}
fclose(inFile);
}
어느 부분이 틀려서 채점 서버에 올리면 계속 100점이 안뜨는지좀 알려주세요ㅠ