for문 안에 있는 for문 안에서 scanf를 하셨기 때문에 처음에 5를 입력하면 5번의 입력이 추가로 끝나야 printf가 실행됩니다.
말씀하신 부분처럼 for 문안에 for문+내용을 넣으면 내부 for문이 전부 돌고 내용이 실행되고 이 코드에서도 그렇게 됩니다.
8958번 - OX퀴즈
for문 안에 있는 for문 안에서 scanf를 하셨기 때문에 처음에 5를 입력하면 5번의 입력이 추가로 끝나야 printf가 실행됩니다.
말씀하신 부분처럼 for 문안에 for문+내용을 넣으면 내부 for문이 전부 돌고 내용이 실행되고 이 코드에서도 그렇게 됩니다.
%c와 %s가 형식이 다르기 때문입니다.
%c는 문자를 나타내고 %s는 문자열입니다.
그리고 문자열은 문자의 배열 형식으로 존재합니다.
scanf("%d",&a); 에서처럼 &를 붙여서 a의 주소를 주죠.
이 처럼 scanf로 값을 저장할 때는 주소로 주는데 문자의 경우 다른 변수처럼 생각해도 되지만 문자열은 배열이기 때문에 신경을 써야합니다.
배열은 이미 주소를 가르키기 때문입니다.
int main() { char a; char b[100]; scanf("%c",&a); scanf("%s",b); }
이것처럼 변수 a는 배열이기 때문에 %s로 받을 때 &를 앞에 붙이지 않죠.
결론은 %c와 %s는 전혀 다른 방식으로 값을 받는다는 것입니다.
댓글을 작성하려면 로그인해야 합니다.
xzsa18 2년 전
보통 for문 안에 for문 + 내용을 집어 넣으면 내부 for문을 돌리고 내용을 실행시키고 다시 반복을 하지 않나요?
현재 코드를 실행시키면 OOXOO를 실행할 때 바로 출력값이 나와야 하는데 저걸 5번을 입력하고 나서야 값이 나오는게 이해가 안갑니다…