제 알고리즘으로 버블정렬 알려주세요
개럭시
질문 제목 : 버블정렬버블정렬로 답을 구하려한느데 계속 꼬이네요.. 함수 여러개 하는건 수업시간에 안들어서.... main함수에 다 집어넣었습니다;;;출력부분만 코딩 도와주세요
(■ 동점자가 있을 경우, 번호가 빠른 선수가 순위가 높도록 처리한다.)이 부분때문에 버블정렬이 필요합니다
질문 내용 :#include stdio.h
#include stdlib.hint n, temp_[5], temp_k;
int k, x, y;
int player[20][6];
int temp_n[20][1];
float avg[20], temp[20];
int count, count_1,count_2;
int main()
{
file *fpin, *fpout;
fpin = fopen(gymnastic.inp, r);
fpout = fopen(gymnastic.out, w); if (fpin == null) {
printf(file not found);
exit(1);
}
//입력
for(n=0;n20;n++){
fscanf(fpin, %d %d %d %d %d %d, &player[n][0], &player[n][1], &player[n][2], &player[n][3], &player[n][4], &player[n][5]);//평균
temp_[1]=player[n][1];
temp_[2]=player[n][2];
temp_[3]=player[n][3];
temp_[4]=player[n][4];
temp_[5]=player[n][5];
for(y=0;y5;y++){
for(x=1;x5;x++){
if (temp_[x]=temp_[x+1]){
count_2=temp_[x+1];
temp_[x+1]=temp_[x];
temp_[x]=count_2;
}
}
}
avg[n]=(float)(temp_[2]+temp_[3]+temp_[4])/3;
//카운트
if (player[n][0] != 0)
count++;
}
for(n=0;ncount;n++){
fprintf(fpout, %d %.2f\n, player[n][0], avg[n]);
}
//메달 순서 for(count_1=0;count_1count;count_1++)
{
for(n=0;ncount;n++){
if (avg[n] avg[n+1]){
temp[n]=avg[n+1];
avg[n+1]=avg[n];
avg[n]=temp[n];
temp_n[n][0]=player[n+1][0];
player[n+1][0]=player[n][0];
player[n][0]=temp_n[n][0];
}
fprintf(fpout,%f %d %f %d\n, avg[n],player[n][0],avg[n+1],player[n+1][0]);
}
}
//출력
for(n=0;ncount;n++)
if(avg[n]=avg[n+1],player[n+1][0]player[n][0])
temp_n[n][0]=player[n+1][0];
player[n+1][0]=player[n][0];
player[n][0]=temp_n[n][0];
fprintf(fpout, 금메달 : %d\n,player[count][0]);
fprintf(fpout, 은메달 : %d\n,player[count-1][0]);
fprintf(fpout, 동메달 : %d\n,player[count-2][0]);
fclose(fpin);
fclose(fpout);
return 0;
}