- 학생 30명 중 과제를 제출 안 한 학생 출력하기
- 처음에는 그냥 배열에 입력을 받은 후 오름차순 정렬을 해서 제출 안 한 학생을 출력하려고 했다.
for (int i = 0; i < length - 2; i++) // 과제 제출한 학생 입력
{
scanf("%d", &attend[a]);
}
// 오름차순 정렬
- 이렇게 하고 출력을 해보니 쓰레기값 2개가 먼저 출력된 후 나머지 배열값이 출력되는 것을 볼 수 있었다. ``` 쓰레기값 쓰레기값 1 3 4 ... ``` - 어떻게 할 지 고민해봤는데 원하는 대로 출력할 수가 없어서 구글링을 해봤다.
다들 인덱스로 접근했길래 나도 인덱스를 활용해서 접근했다.
인덱스를 활용해서 접근할 때 1 ~ 30을 쓸 지 0 ~ 29를 쓸 지 결정해야 했다.
인덱스와 출석번호를 동일하게 하려면 1 ~ 30으로 쓰는 게 맞았으나 이렇게 할 경우 배열의 크기를 31로 설정해야 하고 여기서 오류가 떴다. 그래서 그냥 0 ~ 29로 사용하고 출력할 때 인덱스 값에 1을 더해 출석번호를 출력하였다. ```c for (int j = 0; j <= length; j++) { if (attend[j] == 0) printf("%d\n", j + 1); } ```