이 문제좀 풀어주실 수 있나요
글쓴이: wkdtlguszoq / 작성시간: 금, 2020/12/18 - 9:52오전
각 달의 날 수를 배열(array)로 저장하고, 특정한 달(1에서 12까지의 정수)을 입력하면 이를 인덱스(index)로 하여 그 달의 날 수를 출력하는 프로그램을 작성하시오. 단, 2월은 윤년과 관계없이 28일로 한다.
라는 문제인데요 제가 풀어본건
#include <stdio.h> int main(void) { int month, days; printf("달을 입력하시오: "); scanf("%d", &month); switch(month) { case 2: days = 28; break; case 4: case 6: case 9: case 11: days = 30; break; default: days = 31; break; } printf("%d월의 일수는 %d입니다.\n", month, days); return 0; }
인데 맞을까요
Forums:
KLDP에서 숙제나 문제 풀이를 질문에 올리면
KLDP에서 숙제나 문제 풀이를 질문에 올리면 풀어주지 않는것이 불문율입니다.
코드를 보니 결과는 맞게 나올텐데, 문제에서 배열을 쓰라고 했으므로 배열을 이용해서 풀어보세요. 아주 쉽습니다.
----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라
감사합니다
제가 처음 이용해 잘 몰랐네요 주의하겠습니다
코딩 자체는 좋은 접근입니다. case 문을
코딩 자체는 좋은 접근입니다. case 문을 이용할지는 과제를 내준 분도 예측을 못했을 것 같네요. ^^
배열, enumerate로도 가능하니 그런 부분도 찾아보세요.
데이터 메모리 캐시가 없다는 가정하에 아마
데이터 메모리 캐시가 없다는 가정하에 아마 switch-case를 쓰는 저 코드가 배열을 쓰는 코드보다 속도는 더 빠를지도 모릅니다..ㅎㅎㅎ
----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라
예. ^^
예. ^^
하지만 유지보수 입장에서 switch-case 는 아마 극악일테니 질문자 분은 나빌레라님같은 고수 의견에 현혹되지 마시고(~~),,, C++ STL map 같은 것으로도 한번 해보시기 바랍니다.
교수님은 아마 STL 쓰면 좋아하실듯(?) 하네요. 하지만 'D' 받아도 책임 못집니다 ~
D/I cache 아예 없는 8 bit micom
D/I cache 아예 없는 8 bit micom 배우던 시절에, 그 칩의 매뉴얼엔 branch(jump) 가 클럭을 더 소모한다고 써있었습니다.
다만, 저 micom 은 간접메모리참조를 인스트럭션 수준에서 지원하지 않고, 특정 레지스터에 주소를 기록하고 다시 읽어내는 방식이어서... 이러나저러나 도긴개긴.
ARM9 에서도 비스무리하네요.
https://developer.arm.com/documentation/ddi0165/b/instruction-cycle-times/instruction-cycle-count-summary
ARMv7(cortex-m3) 은 PC 에 관계된 인스트럭션들이 모두 pipeline reloading 에 묶여있어서 차이가 더 커질 수도 있을 것 같고요.
https://developer.arm.com/documentation/ddi0337/e/instruction-timing/processor-instruction-timings
헐! 그렇군요. 제가 파이프 라인 해저드에 따른
헐! 그렇군요. 제가 파이프 라인 해저드에 따른 손실은 미쳐 생각치 못했습니다..
감사합니다. 이렇게 또 배우는군요.
----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라
댓글 달기