<정답 풀이>
#include<stdio.h>
int main(void)
{
int arr[9];
int max = 0;
for (int i = 0; i < 9; i++)
{
scanf("%d", &arr[i]);
if (max < arr[i]) max = arr[i];
}
printf("%d\n", max);
for (int i = 0; i < 9; i++)
{
if (max == arr[i])
printf("%d", i + 1);
}
return 0;
}
최댓값을 먼저 구해 출력을 하고, 그다음에 if문의 max == arr[ i ] 조건을 통해 그 최댓값이 몇번쨰로 입력이 되었는지를 구하였다. max == arr[ i ]의 조건은 이미 최댓값을 알고 있기에 가능한 조건이다.
i + 1을 출력해준 이유는 배열의 인덱스 넘버가 0부터 시작되기때문이다.(입력의 순서는 0번째가 아닌 첫번째라고 해야하기에 1을 더해준것)
<2번째 정답>
#include<stdio.h>
int main(void)
{
int arr[9];
int num,max = 0;
for (int i = 0; i < 9; i++)
{
scanf("%d", &arr[i]);
if (max < arr[i]) max = arr[i];
if (max == arr[i]) num = i + 1;
}
printf("%d\n%d", max,num);
return 0;
}
겉보기에도 첫번째 풀이보다 코드길이가 훨씬 간결해졌음을 알 수 있다. 두번쨰 코드가 조금 더 좋은 풀이라고 할 수 있을 것 같다.