#include <stdio.h>
#include <stdlib.h>
#pragma warning (disable:4996)

int main()
{
 int score[5];
 printf("점수를 입력하세요 : ");
 int n, m, max, min;
 for (n = 0; n<5; n++)
 {
  scanf("%d", &score[n]);
 }

 max = score[0];
 min = score[0];
 int maxnum, minnum;
 for (m = 0; m<5; m++)
 {
  if (score[m]>max)
  {
   max = score[m];
   maxnum = m;
  }

  else if (score[m]<min)
  {
   min = score[m];
   minnum = m;
  }
  

 }

 printf("유효숫자 : ");
 int o;
 int sum = 0;
 for (o = 0; o<5; o++)
 {
  if (o == maxnum || o == minnum)
  {
   score[o] = 0;
  }

  else
  {
   printf("-", score[o]);
   sum += score[o];
  }

 }
 
 printf("\n");

 double avg;

 avg = sum / 3.0;

 printf("평균 : %.1lf\n", avg);

 system("pause");

 return 0;
}


평가좀 해줘라 좀 많이 비효율적인듯


근데 말이야

 if (o == maxnum || o == minnum)
  {
   score[o] = 0;
  }

이부분 내가 처음에

 if (o == maxnum || o == minnum)
  {
   break;
  }


라 했는데 이러면 안돼더라?


왜지?


예를들어 o=1일때 o==minnum이면 break로 걸리면


그 블럭만 탈출해서 다시 o=2로 반복문 시작하는거아니냐?