작성
·
275
1
3번째 예제를 연습해보던 중에 first_char와 last_char를 입력받아서 위에 예제처럼 나오게도 해보라고 하셔서 scanf로 문자를 2번 입력받아서 코드를 짜보았습니다.
char first_char;
char last_char;
int num_row;
int r;
int c;
printf("Enter a first character : ");
scanf(" %c", &first_char);
printf("Enter a last character : ");
scanf(" %c", &last_char);
num_row = (int)last_char - (int)first_char + 1;
for (r = 0; r < num_row; r++)
{
for (c = first_char + r; c <= last_char; c++)
printf("%c ", c);
printf("\n");
}
return 0;
1. 문자를 입력받으려고 scanf("%c",&first_num) 와 scanf("%c", &last_num); 이렇게 코드를 짰는데 입력이 되지를 않았습니다.
그래서 인터넷을 찾아보니 %c 앞에 스페이스바로 한칸 띄어서 작성을 하면 된다고 해서 그렇게 해보니까 잘 작동을 하더라구요.
이렇게 코드를 사용을 해도 괜찮을까요??
2. 교수님께서 for문 안에 update를 ++r 혹은 ++c 로 사용을 하시던데 혹시 다른 이유가 있을까요?
++r 과 r++의 결과 값이 상관이 없을 경우에는 아무거나 사용을 해도 될까요??
관련 강의를 찾아보고 있는데 명확해지지가 않아서 질문드려요 ㅠㅠ
답변 1
4
1. 여러가지로 꼼꼼하게 신경쓰시는 것은 좋은 자세입니다. 빈칸 제거 코드를 추가하시는 방법도 있고 문법상으로는 문제가 없기 때문에 빈칸 주의에 대해 주석을 남겨두는 방법도 있습니다.
2. ++c가 더 빠르다는 얘기가 있어서 습관입니다. 컴파일러에 따라서 두 경우 모두 동일하게 작동할 수도 있습니다. 요즘은 컴파일러가 최적화를 잘 해주기 때문에 이런 사소한 부분까지 신경을 쓰시기 보다는 알고리즘에 더 집중하는 추세입니다. 물론, 공부를 잘 해나가고 계시는 것 같네요.