조건을 좀 여러개 추가해야할 것 같네요.
for문을 돌릴때 i<c-1라는 조건대신 i<c로 바꾼뒤 for문 밖에 c=getchar()를 추가하게 되면 숫자를 모두 출력한 뒤 새로 문자를 받아, 0-0이 들어올때도 바깥에 있는 putchar때문에 '-'문자 뒤에 있는 0이 출력되는 일이 없어지네요.
special case ---00-를 도출하기 위해서는 조건문을 추가하셔야 하는데 while 안에 어떤 조건문을 추가하여 if (u == 0)문을 수행하도록 하면 되겟죠?