1. 배열크기를 가로 n+1, 세로 m+1로 선언해서 테두리 0으로 채우고 arr[1][1]부터 arr[m][n]까지 계산하면
배열을 벗어나는지 확인할 필요가 없어져서 코드길이가 대폭 줄어들거예요
2. 다음날의 상태를 반환하는 함수를 만들어서 g일동안 arr1에 할당하도록 하면
%2를 확인할 필요가 없어져서 코드가 반으로 줄겠네요
3. 삼항연산자를 사용하면
for (i = 0;i < m;i++)
for (j = 0;j < n;j++)
printf(j<n-1?"%d ":"%d\n", arr[i][j]);
이런 게 가능합니다.