이 c언어의 결과가 60이 나오기위해서는 두번째 for문만 실행하면되는거아닌가요? ob1.a의 값과 ob2.a의 값만을 더하라고 마지막에서 나왔으니 이걸 수행하기위해서는 두번째for문을 수헹하면 각각 ob1과 2의 값이 20 40이 나오므로 첫번째for문은 함정같은건가여?
그라고 ob2의 값이 40이 나오는데 4씩증가하는게맞나요? 어째서 4씩증가하죠?
안녕하세요 길벗수험서 운영팀입니다.
글로 설명을 하려니 너무 힘드네요
답변을 하면서도 답변을 보시고 이해가 되실까? 의문이 듭니다
회원님께서 말씀하신것처럼 첫번째 for문을 실행하지 않고
두번째 for문을 바로 실행하면
두번째 for문에서는 ob1.a에 ob1.c[i]의 값을 누적시키고, ob2.a에 ob2.c[i]의 값을 누적시킵니다.
이때 ob1.c[i]와 ob2.c[i]에는 아무런 값이 없으니 값을 누적을 시킬수가 없습니다.
첫번째 for문이 실행이 되면서 ob1.c[i] 과 ob2.c[i]에 값을 넣습니다.
첫번째 for문의 반복 변수 i가 0부터 1씩 증가하면서 10보다 작은 동안 반복실행이 되는데
ob1.c[i]에 i의 값을 저장하고 ob2.c[i]에 ob1.c[i]와 i를 합한 값을 저장합니다.
ob1.c[i] 에는 0,1,2,3,4,5,6,7,8,9 의 값이
ob2.c[i] 에는 0,2,4,6,8,10,12,14,16,18의 값이 들어갑니다
이렇게 첫번째 for문에서 ob1.c[i]와 ob2.c[i] 에 값을 넣어줍니다
두번째 for문에서는 반복 변수 i가 0부터 2씩 증가하면서 10보다 작은 동안
ob1.a에 ob1.c[i]의 값을 누적시키고, ob2.a에 ob2.c[i]의 값을 누적시킵니다.
반복변수 i는 0, 2, 4, 6, 8, 10 이렇게 변할것이고
ob1.a에 ob1.c[i]의 값을 누적을 시키는데
ob1.c[0]에는 0이라는 값이 들어있고
ob1.c[2]에는 2이라는 값이 들어있고
ob1.c[4]에는 4이라는 값이 들어있고
ob1.c[6]에는 6이라는 값이 들어있고
ob1.c[8]에는 8이라는 값이 들어있습니다
이 값들을 누적시키면 20이 됩니다
ob2.a에 ob2.c[i]의 값을 누적을 시키는데
ob2.c[0]에는 0이라는 값이 들어있고
ob2.c[2]에는 4이라는 값이 들어있고
ob2.c[4]에는 8이라는 값이 들어있고
ob2.c[6]에는 12이라는 값이 들어있고
ob2.c[8]에는 16이라는 값이 들어있습니다
이 값들을 누적시키면 40이 됩니다
프로그래밍 문제는 꼭!! 디버깅을 하셔야 합니다.
회원님께서 질문하신 내용을 보면 디버깅을 하지 않고
코드를 그냥 보시고 질문을 하신것 같습니다.
이렇게 프로그래밍 코드를 주어주고 결과값을 묻는 문제는 필기 시험에만 나오는것이 아나리
차후 실기시험에서도 출제가 되는 내용입니다
꼭!! 디버깅을 종이에 직접 써가면서 하시기 바랍니다
행복한 하루되세요 :)
-
관리자2025-08-21 19:53:04
안녕하세요 길벗수험서 운영팀입니다.
글로 설명을 하려니 너무 힘드네요
답변을 하면서도 답변을 보시고 이해가 되실까? 의문이 듭니다
회원님께서 말씀하신것처럼 첫번째 for문을 실행하지 않고
두번째 for문을 바로 실행하면
두번째 for문에서는 ob1.a에 ob1.c[i]의 값을 누적시키고, ob2.a에 ob2.c[i]의 값을 누적시킵니다.
이때 ob1.c[i]와 ob2.c[i]에는 아무런 값이 없으니 값을 누적을 시킬수가 없습니다.
첫번째 for문이 실행이 되면서 ob1.c[i] 과 ob2.c[i]에 값을 넣습니다.
첫번째 for문의 반복 변수 i가 0부터 1씩 증가하면서 10보다 작은 동안 반복실행이 되는데
ob1.c[i]에 i의 값을 저장하고 ob2.c[i]에 ob1.c[i]와 i를 합한 값을 저장합니다.
ob1.c[i] 에는 0,1,2,3,4,5,6,7,8,9 의 값이
ob2.c[i] 에는 0,2,4,6,8,10,12,14,16,18의 값이 들어갑니다
이렇게 첫번째 for문에서 ob1.c[i]와 ob2.c[i] 에 값을 넣어줍니다
두번째 for문에서는 반복 변수 i가 0부터 2씩 증가하면서 10보다 작은 동안
ob1.a에 ob1.c[i]의 값을 누적시키고, ob2.a에 ob2.c[i]의 값을 누적시킵니다.
반복변수 i는 0, 2, 4, 6, 8, 10 이렇게 변할것이고
ob1.a에 ob1.c[i]의 값을 누적을 시키는데
ob1.c[0]에는 0이라는 값이 들어있고
ob1.c[2]에는 2이라는 값이 들어있고
ob1.c[4]에는 4이라는 값이 들어있고
ob1.c[6]에는 6이라는 값이 들어있고
ob1.c[8]에는 8이라는 값이 들어있습니다
이 값들을 누적시키면 20이 됩니다
ob2.a에 ob2.c[i]의 값을 누적을 시키는데
ob2.c[0]에는 0이라는 값이 들어있고
ob2.c[2]에는 4이라는 값이 들어있고
ob2.c[4]에는 8이라는 값이 들어있고
ob2.c[6]에는 12이라는 값이 들어있고
ob2.c[8]에는 16이라는 값이 들어있습니다
이 값들을 누적시키면 40이 됩니다
프로그래밍 문제는 꼭!! 디버깅을 하셔야 합니다.
회원님께서 질문하신 내용을 보면 디버깅을 하지 않고
코드를 그냥 보시고 질문을 하신것 같습니다.
이렇게 프로그래밍 코드를 주어주고 결과값을 묻는 문제는 필기 시험에만 나오는것이 아나리
차후 실기시험에서도 출제가 되는 내용입니다
꼭!! 디버깅을 종이에 직접 써가면서 하시기 바랍니다
행복한 하루되세요 :)