목록전공자를 위한 C언어 프로그래밍 (14)
cyphen156

개인 문제풀이임으로 오답이 있을 수 있습니다. 1부터 n까지의 합을 구하되 그 합이 입력 정수를 넘지 않아야 한다는 조건 하에서 최댓값을 구하는 문제다. 이 문제에 대해 위와 같이 소스코드를 작성한 걀거ㅣ, 그림에서 보듯이 잘못된 값이 출력되고 있다. Visual C가 제공하는 디버거를 이용하여 이 문제를 해결하라. 조사식 창을 열어 i, max, sum 변수를 입력하고 루프를 돌 때마다 개별 변수 값이 어떻게 변화하는지 추적하고 루프를 빠져나갈 때의 값이 어떻게 변화하는지도 추적해야 한다. 추적 과정에 사용된 화면을 모두 캡처해서 하나의 파일로 제출하라. #include int main() { int i, max, sum = 0; printf("Enter the maximum number.\n"); s..

뭔가 챕터 제목부터가 어려워보입니다. 근데 막상 해보면 그냥 이론적인 내용과 어떻게하면 내가 작성한 코드의 문제점을 찾고 수정하는지에 관한 안내 내용이므로 부담없이 그냥 천천히 읽어보면 됩니다. 디버그는 뭘까? 버그(Bug)즉 벌레를 없앤다는 것인데 프로그램의 오류를 버그라고 부르고, 이를 찾아내서 고치는 것을 디버그라고 합니다. 프로그램 오류를 버그라고 부르게 된 이유는 아주 옛날에 컴퓨터에 벌레가 한마리 들어가서 오작동한 적이 있었고, 이 사건 이후로 프로그램 오류를 버그라고 부르게 되었다고 합니다. 디버깅을 하는 가장 간단한 방법은 연필로 끄적여보는것 입니다. 차근차근 프로그램의 동작 순서를 노트에 적어 가면서 변수가 어떻게 변하는지를 추적해서 프로그램 동작 논리에 모순이 없는지를 확인하고, 예상치..

개인 문제풀이임으로 오답이 있을 수 있습니다. 다음 중첩 루프의 실행 결과를 예측해 보고 실제 실행 결과를 출력하여 비교하라. 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. >..

프로그램의 흐름 프로그램의 실행 흐름에는 순차, 선택, 반복이라는 세 가지의 구조가 있습니다. 이 중 우리는 이전 챕터에서 프로그래밍에 있어서 조건에 따른 선택이라는 흐름 구조를 배웠습니다. 이번에 공부할 내용은 특정한 명령을 반복해서 실행시키기 위한 반복 구조입니다. 반복 구조 프로그램에서 특정한 명령을 반복해서 사용해야 할 때, 사용자의 수고로움을 줄이기 위해 개발되었습니다. 반복문에는 while과 for문이 있으며 loop문이라고도 합니다. 반복문에는 항상 반복을 제어하기 위한 변수가 존재하는데 저는 이것을 반복조건문이라고 부릅니다. 반복조건문에는 1. 초기식, 2. 조건식, 3. 증감식으로 세가지 요소가 존재합니다. 반복문은 이 세 요소중 조건식에 해당하는 내용이 false가 될 때 까지 명령을 ..

개인 문제풀이임으로 오답이 있을 수 있습니다. 아래 함수를 호출하여 입력 정수의 절댓값을 계산하는 프로그램을 작성하라. 단, 함수 내부에서 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이라고 출력하는 ..

조건문 조건문 = 분기점! 조건문에서는 주어진 조건에 따라 참과 거짓으로 나뉘어 실행할 코드의 분기를 결정하는데 사용됩니다. 만약 조건문 괄호 안의 연산이 참이면 코드를 실행하고, 거짓이면 실행하지 않고 다음 코드를 실행하거나, 다른 조건을 연산한 뒤 코드를 실행합니다. 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()..

개인 문제풀이임으로 오답이 있을 수 있습니다. 두 정수를 입력받아 첫 번째 정수가 두 번째 정수보다 크거나 같으면 1을, 그렇지 않으면 0을 되돌려주는 함수를 작성하고 main에서 그 함수를 불러 결과를 출력하는 프로그램을 작성하라. 함수 원형은 int is_larger(int f, int s);로 한다. [hint] 논리 연산의 결과는 1이나 0이고 그것을 함수 리턴값으로 돌려준다. > Enter two integers. > 3 3(Enter) > Result is 1. #define _CRT_SECURE_NO_WARNINGS #include int is_larger(int f, int s) { if (f >= s) { return 1; } else { return 0; } } int main() { ..

※주의 주인장의 개인적 사견이 매우 많이 들어가 있습니다. 저도 공부하고 있는 입장이므로 피드백 환영합니다. 함수(function)는 뭘까? 함수는 특정한 기능을 수행하기 위해 호출을 받으면 무언가(인자 = 매개변수 = 파라미터/parameters)를 전달받아 호출자에게 결과를 돌려주는 명령문들의 집합체라고합니다. 단순하게 생각하면 수학에서의 함수 f(x) : y = 2x + 4라고 할 때, f(x)는 함수명, y는 return되는 결과물, 2(x) + 4는 함수를 호출했을때 실행되는 명령문, x는 함수로 전달되는 인자값이라고 생각하면 됩니다. 함수는 왜 쓰는가? 처음에는 궂이 함수를 따로 만들어서 작업을 처리할 필요 없이 main에서 처리하면 편하고 쉽지 않겟느냐?라는 의문이 들 수 있습니다. 지금은 ..