인프런 커뮤니티 질문&답변

buchonsi님의 프로필 이미지
buchonsi

작성한 질문수

홍정모의 따라하며 배우는 C언어

6.15 중첩된 루프들

6:00 연습문제 3번 질문있습니다.

작성

·

271

1

ex3

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가 더 빠르다는 얘기가 있어서 습관입니다. 컴파일러에 따라서 두 경우 모두 동일하게 작동할 수도 있습니다. 요즘은 컴파일러가 최적화를 잘 해주기 때문에 이런 사소한 부분까지 신경을 쓰시기 보다는 알고리즘에 더 집중하는 추세입니다. 물론, 공부를 잘 해나가고 계시는 것 같네요.

buchonsi님의 프로필 이미지
buchonsi

작성한 질문수

질문하기