아 12345678 입력받으면 asc 역순이면 des else로 mixed하면 끝나겠구나 생각했다.
첫번째 숫자가 1일때, 8일때, else로 구분을 해주었다. 근데 내 코드 다시 보는데 굳이 1,8일때 구분 안했어도 됐겠다 싶다. 괜히 더 더러워짐
1일때, arr[i++] == i + 1이면 count++로 count를 세줌
count == 8이면 asc. des도 같은 논리
좀 가독성있게 수정할까 했는데 음.. 제출한 파일 그대로 냄 그냥
#include <stdio.h>
int main()
{
int arr[8];
int i;
int count = 0;
i = 0;
while (i < 8)
{
scanf("%d", &arr[i]);
i++;
} // 입력받음
i = 0;
if (arr[0] == 1)
{
while (i < 8)
{
if (arr[i] == i + 1)
{
count++;
}
i++;
} // 1 2 3 4 ~ 8인지 체크
if (count == 8) // 각각 다 맞으면 count가 8이다.
printf("ascending");
else // 하나라도 어긋나면 mixed
printf("mixed");
}
else if (arr[0] == 8)
{
count = 0;
int j = 8;
while (i < 8)
{
if (arr[i] == j) // j = 8 하고 j--해줌
{
count++;
}
i++;
j--;
}
if (count == 8) // 위와 같은 논리로 다 맞으면 count는 8
printf("descending");
else // 하나라도 어긋나면 mixed
printf("mixed");
}
else // 첫 자리가 1도 아니고 8도 아니면 mixed
printf("mixed");
}
처음에 말했던 첫글자 = 1 or 8 이거 다 지워버리면 조금 더 나았겠다 싶다.