C언어(자기주도C언어프로그래밍)/Chapter04. 주석문과 디버깅

자기주도C언어프로그래밍 Chapter04. 주석문과 디버깅 - 연습문제&자가진단

사상 2023. 2. 21. 18:01

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&sca=1040

 

JUNGOL

 

www.jungol.co.kr

사이트에서 직접 프로그램을 돌려볼 수 있습니다.

 

교재 P.76 연습문제1

/*
이 프로그램은 주석의 사용에 대해 학습하기 위해 작성한 것입니다.
주석은 프로그램 작성자가 프로그램을 이해하기 쉽도록 하기 위해 작성하는 것입니다.
주석으로 표시된 부분은 프로그램을 컴파일 할 때 무시하고 처리합니다.
따라서 실제 프로그램에는 없는 것과 마찬가지 입니다.
*/

#include <stdio.h>
int main(){
    int a, b; /* 정수형 변수 두 개를 선언한다. */
    double d, e; /* 실수형 변수 두 개를 선언한다. */

    scanf("%lf %lf", &d, &e); /* 실수형 변수 두 개를 입력받는다. */

    a = d + e; /* 실수 두개를 더해서 정수 변수에 대입한다. */
    b = (int)d + (int)e; /* 두개의 실수를 각각 정수로 변환하여 정수 변수에 대입한다. */
    printf("%d %d \n", a, b); /* 결과값을 출력하고 비교해 본다. */

    return 0;
}

/************************************
여러 줄을 주석 처리하는 방법입니다.
************************************/

 

교재 P.77 자가진단1

#include <stdio.h>
int main(){
    int a, b; /* 정수형 변수 두 개를 선언한다. */
    double c, d; /* 실수형 변수 두 개를 선언한다. */
    scanf("%lf %lf", &c, &d); /* 실수형 변수 두 개를 입력받는다. */

    a = c * d; /* 두 개의 실수를 정수형 변수에 대입한다. */
    b = (int)c * (int)d; /* 두 개의 실수를 각각 정수로 변환하여 정수 변수에 대입한다. */
    printf("%d %d", a, b); /* 결과값을 출력하고 비교해 본다. */

    return 0;
}

 

교재 P.78 연습문제2

// 이것은 한줄을 주석처리하는 방법입니다.
// 주석처리 하고자 하는 줄마다 "//" 표시를 해주어야 합니다.

#include <stdio.h>

int main(){
    int a; // 정수형 변수 한 개를 선언한다.
    scanf("%d", &a); // 정수를 입력받는다.

    printf("%d / 4 = %d \n", a, a / 4);
    // 입력받은 정술르 정수 4로 나눈 몫을 출력한다.

    printf("%d / 4.0 = %.2f \n", a, a / 4.0);
    // 입력받은 정수를 실수 4.0으로 나눈 결과값을 출력한다.

    return 0;
}

 

교재 P.79 자가진단2

#include <stdio.h>
int main(){
    int a, b, c; // 정수형 변수 세 개를 선언한다.
    double d; // 실수형 변수 한 개를 선언한다.
    scanf("%d %d", &a, &b); // 정수형 변수 두 개를 입력받는다.

    c = a / b; // 첫번째 정수를 두번째 정수로 나눈 값을 c라는 변수에 저장한다.
    d = (double)a / b; // 첫번째 정수를 실수로 변환한 후 두번째 정수로 나눈 값을 c라는 변수에 저장한다.

    printf("%d %.2lf", c, d); // 결과값을 출력하고 비교해 본다.

    return 0;

}

 

교재 P.80 연습문제3

/*****************************************************************
디버깅은 프로그램에서 논리적인 에러를 찾아내기 위해 사용합니다.
*****************************************************************/

#include <stdio.h>

int main() {
int a = 10;
int b;
int c;
scanf("%d", &b);
c = a + b;
printf("%d \n", c);
return 0;
}

 

변수 a, b, c에 쓰레기 값이 들어가 있다.
a의 값이 10으로 변한다.

 


b에 20을 넣으니 b의 값이 20, c의 값이 30으로 변한다.

visual studio에 있는 #define _CRT_SECURE_NO_WARNINGS가 없으면 scanf에서 오류가 발생합니다.

위 문장 없이 scanf대신 scanf_s를 써도 오류는 발생하지 않습니다.

 

교재 P.85 자가진단3

sub1, sub2, sub3, sub4에 쓰레기 값이 들어가 있다.
sub1에 85, sub2에 90, sub3에 80, sub4에 100을 대입
sum과 avg에도 각각 355와 88.75라는 값이 들어간걸 확인할 수 있다.