목록HANBIT Academy (34)
cyphen156
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bRyO1N/btsrToOLl2T/9sUvnfcBgaL9Ku8dwkm9i1/img.jpg)
개인 문제풀이임으로 오답이 있을 수 있습니다. 1부터 n까지의 합을 구하되 그 합이 입력 정수를 넘지 않아야 한다는 조건 하에서 최댓값을 구하는 문제다. 이 문제에 대해 위와 같이 소스코드를 작성한 걀거ㅣ, 그림에서 보듯이 잘못된 값이 출력되고 있다. Visual C가 제공하는 디버거를 이용하여 이 문제를 해결하라. 조사식 창을 열어 i, max, sum 변수를 입력하고 루프를 돌 때마다 개별 변수 값이 어떻게 변화하는지 추적하고 루프를 빠져나갈 때의 값이 어떻게 변화하는지도 추적해야 한다. 추적 과정에 사용된 화면을 모두 캡처해서 하나의 파일로 제출하라. #include int main() { int i, max, sum = 0; printf("Enter the maximum number.\n"); s..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bxq3i4/btsqCr64wCv/9ktrmcVhDRe1Y3kuF5x8GK/img.jpg)
뭔가 챕터 제목부터가 어려워보입니다. 근데 막상 해보면 그냥 이론적인 내용과 어떻게하면 내가 작성한 코드의 문제점을 찾고 수정하는지에 관한 안내 내용이므로 부담없이 그냥 천천히 읽어보면 됩니다. 디버그는 뭘까? 버그(Bug)즉 벌레를 없앤다는 것인데 프로그램의 오류를 버그라고 부르고, 이를 찾아내서 고치는 것을 디버그라고 합니다. 프로그램 오류를 버그라고 부르게 된 이유는 아주 옛날에 컴퓨터에 벌레가 한마리 들어가서 오작동한 적이 있었고, 이 사건 이후로 프로그램 오류를 버그라고 부르게 되었다고 합니다. 디버깅을 하는 가장 간단한 방법은 연필로 끄적여보는것 입니다. 차근차근 프로그램의 동작 순서를 노트에 적어 가면서 변수가 어떻게 변하는지를 추적해서 프로그램 동작 논리에 모순이 없는지를 확인하고, 예상치..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/9lggZ/btsqrFpvYnT/SGoL9TdCbZpwkHqtu0wiBK/img.jpg)
개인 문제풀이임으로 오답이 있을 수 있습니다. 다음 중첩 루프의 실행 결과를 예측해 보고 실제 실행 결과를 출력하여 비교하라. for (i = 0; i = 1; j--) { printf("%d %d\n, i, j); } } #define _CRT_SECURE_NO_WARNINGS #include int main(void) { int i, j; for (i = 0; i = 1; j--) { printf("%d % d\n", i, j); } } return 0; } 1부터 n까지의 합을 구하되 그 합이 입력 정수를 넘지 않아야 한다는 조건 하에서 최댓값을 구하라. > Enter a maximum number. >..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dHHa4a/btsqh3RDdHR/ofjXUrhSN5SNKsKpzBHyl0/img.jpg)
오늘날의 현대 컴퓨팅 환경에서는 대부분 2의 보수를 통해 수치 자료를 표현한다. 2의 보수 2의 보수란 2진수 체계에서 음수와 양수, 그리고 0이라는 수를 표현하기 위해 사용되는 수 체계로, 8비트를 기준으로 최상위 비트(MSB)를 부호비트로 사용하고, 남는 7개의 비트를 통해 수를 표현하는 방법이다. 숫자 0인 경우 00000000(0),양수의 경우 00000001(1)~01111111(127), 11111111(-1)~10000000(-128)로 표현된다. 특이한 점은 양수의 표현 범위가 2의 7제곱이 아니라 2의 7제곱 -1이라는 사실인데 이것은 0의 존재를 표현하기 위해서이다. 2의 보수체계에서 양수를 음수로 만드는 과정은 간단하다. 2진수 양수의 모든 비트를 반전(0->1, 1->0)시킨뒤, 1..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bXePE4/btspOC80qMu/RbGDoOmZ7Sdg2iRqkkjbj1/img.jpg)
컴퓨터가 10진수를 표현하는 방법은 여러가지 방법이 있지만 오늘 소개할 방법은 존(Zone)과 팩(Pack)이라는 형식이다. 이 두 방법은 IBM에서 BCD/EBCDIC(Binary Coded Decimal / Extended Binary Coded Decimal Interchange Code)라는 문자 코딩방식에서 나온 특수한 형식으로, 주로 정밀한 수의 계산이 필요한 금융권에서 사용하는 일반적인 프로그래밍 언어에서 사용하는 방법은 아니다. 두 형식 모드 수를 표현할 때 1바이트 단위로 사용한다는 것은 동일하지만 약간의 차이점이 존재한다. 존(Zone) 형식 표현법 존 형식은 상위 4비트는 1111(F) 또는 1110(D, 양)/1100(C, 음수)로 채워 부호비트인지 여부를 알려주고, 하위 4비트에 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bOReDJ/btsni7pHCiT/43B529qAv5NgJ3iZiCAnO1/img.jpg)
프로그램의 흐름 프로그램의 실행 흐름에는 순차, 선택, 반복이라는 세 가지의 구조가 있습니다. 이 중 우리는 이전 챕터에서 프로그래밍에 있어서 조건에 따른 선택이라는 흐름 구조를 배웠습니다. 이번에 공부할 내용은 특정한 명령을 반복해서 실행시키기 위한 반복 구조입니다. 반복 구조 프로그램에서 특정한 명령을 반복해서 사용해야 할 때, 사용자의 수고로움을 줄이기 위해 개발되었습니다. 반복문에는 while과 for문이 있으며 loop문이라고도 합니다. 반복문에는 항상 반복을 제어하기 위한 변수가 존재하는데 저는 이것을 반복조건문이라고 부릅니다. 반복조건문에는 1. 초기식, 2. 조건식, 3. 증감식으로 세가지 요소가 존재합니다. 반복문은 이 세 요소중 조건식에 해당하는 내용이 false가 될 때 까지 명령을 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dt34uz/btskKCTHban/x2gEzviuu0cXMp3dKbTivk/img.jpg)
개인 문제풀이임으로 오답이 있을 수 있습니다. 아래 함수를 호출하여 입력 정수의 절댓값을 계산하는 프로그램을 작성하라. 단, 함수 내부에서 3항 연산자를 써야 한다. 입출력 형식은 자유로이 할 수 있다. int abs(int num); #define_CRT_SECURE_NO_WARNINGS #include int abs(int num); int main(void) { int num; scanf("%d", &num); printf("%d", abs(num)); return 0; } int abs(int num) { return (num >= 0) ? num : -num; } 아래 함수를 호출하되 알파벳 소문자 하나를 입력받아 그것이 자음이면 Consonant라고 출력하고 모음이면 Vowel이라고 출력하는 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/t1klB/btsikTcuRvB/kbW0jSkQawb5rKujxsPy71/img.jpg)
조건문 조건문 = 분기점! 조건문에서는 주어진 조건에 따라 참과 거짓으로 나뉘어 실행할 코드의 분기를 결정하는데 사용됩니다. 만약 조건문 괄호 안의 연산이 참이면 코드를 실행하고, 거짓이면 실행하지 않고 다음 코드를 실행하거나, 다른 조건을 연산한 뒤 코드를 실행합니다. If else조건문 // 예제 5-1 #define _CRT_SECURE_NO_WARNINGS #include void Odd_Even(int n) { if (n % 2 == 1) {// 만약 괄호안의 조건이 참이면 바로 아래 중괄호 안의 명령을 실행하고, printf("Odd number.\n"); } else {// 거짓이면 아래 명령을 실행한다. printf("Even number.\n"); } return; } int main()..