#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로 반복문 시작하는거아니냐?
ㄴ 아 리얼? 똑같은거 두개 넣어봤는데 되던ㄷ
ㄴ 에이 쒸부럴 똑같은게 세개면 안되네 씨부럴
ㄴ 에이 쒸부럴 이거 풀고 기부놓았는데
근데 저 문제가 말이야 같은게 세개 이상인데 그게 최대나 최솟값이면 그걸 다 배제하라는건가?
문제 말이 너무 중의적이라 못풀겠는데?