두 개가 가장 대표적인데 동작은 비슷하지만 용도가 조금씩 달라 문제를 보고 어떤것을 적용해야 효율적인지 판단할 줄 알아야 한다고 합니다,,^^
과연 6개월 뒤엔 판단할 수 있을까요!?🤔
반복문은 c언어 뿐만 아니라 모든? 내가 아는 한 대부분의 프로그래밍 언어에서 다 나오고 동작도 똑같기때문에! 잘 짚고 넘어가야한다고 생각합니다.
codeup에서 문제를 풀면서 어려웠던 코드를 보겠습니다~
#include <stdio.h>
int main(){ // codeup 1089
int i, a, d, n, sum; // 시작값, 등차, n번째
scanf("%d %d %d", &a, &d, &n);
// a, a+d, a+d+d, a+d+d+d ... a+(n-1)d
for(i=0;i<n;i++){
sum = a+(i*d);
printf("%d ",sum);
}
printf("\n>>%d",sum);
return 0;
}
수열 문제입니다!
제시된 수열 문제 중 가장 난이도가 낮지만 꽤나 애먹었던 문제ㅠ
"반복문은 문제의 패턴을 찾아내는게 중요합니다."
강사님이 강조하셨을 때 그냥 적어만 뒀는데 직접 문제를 풀면서 패턴의 중요성을 느끼게 된 문제라 기록해두고싶었어요
무작정 코드부터 치면서 문제를 풀려고 했는데 이 수열문제는 그렇게 하려니깐 반복문을 어떻게 사용해야할지 모르겠더라고요
다시 문제로 돌아가 천천히 수식을 적으면서 패턴을 찾았고 for문에서 변수i가 무슨 역할을 해야하는지를 파악하고나서야 코드를 완성할 수 있었습니당.. (;´・`)>
#include <stdio.h>
int main(){ // codeup 1078 초기화는 반드시
int n,i, sum;
scanf("%d", &n);
for(i=1;i<=n;i++){
if(i%2 == 0){
sum = sum+i;
printf("%d ", sum);
}
}
printf("\n>>%d", sum);
return 0;
}
이건 짝수값들만 더한 결과를 출력하는 문제입니다.
나름 쭉쭉 코드를 써내린 문제인데요
왜 여기 있느냐?
무엇 때문인지 계속 홀수 값이 출력되더라고요 분명 나머지가 0이면 짝수가 나오는게 맞잖아요..?
동공지진((👀))
계속 홀수만 나오니깐 %가 나머지 연산자가 아니였던건지.. 스스로를 의심하는 지경까지..
그 런 데!
바로 제 코드의 치명적인 단점.
알아차리셨나요 ?
변수 초기화가 원인이었습니다...
초기화되지않은 sum을 사용했기 때문에 최초 for문 수행 시 sum이 0이 아닌 채로 덧셈이 시작되었고 그 결과 기존 sum값때문에 홀수만 출력된거였습니다!
sum=0;
sum을 0으로 초기화하니까 코드는 정상적으로 수행되었답니다!
운이 좋았구나..
변수 초기화는 기본중의 기본!! 잊지마세요~
초기화안하면.. 저처럼 됩니다(˘̩̩̩ε˘̩ƪ)
c언어 사전 학습은 이렇게 반복문까지로 끝을 맺었습니다
이제 다음주부터는 본격적인 웹개발자 교육과정이 시작되는데요
html css js부터 sql java까지..! 멀고도 험한 과정이 기다리고 있습니다
과연 제가 잘 버틸 수 있을까요? 아니 그전에 velog에 꾸준히 기록할 수는 있을지 ?
과연 !!!