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

자기주도C언어프로그래밍 Chapter04. 주석문과 디버깅 - 형성평가

사상 2023. 2. 21. 18:33

1. 정수로 된 3과목의 점수를 입력받아 평균을 구한 후 반올림하여 소수 첫째자리까지 출력하는 프로그램을 작성하시오.

입력 예

70 95 65

출력 예

76.7

 

#include <stdio.h>
int main(){
    int a, b, c;
    double avg; 
    scanf("%d %d %d", &a, &b, &c);

    avg = (a + b + c) / 3.0;
    printf("%.1lf", avg);

    return 0;
}

 

2. 실수로 된 3과목의 점수를 입력받아 총점은 정수부분의 합계를 출력하고, 평균은 실수의 평균을 구한 뒤 정수부분만 출력하는 프로그램을 작성하시오

입력 예

70.5 95.5 68.5

출력 예

sum 233

avg 78

 

#include <stdio.h>
int main(){
    double a, b, c;
    int sum, avg;
    scanf("%lf %lf %lf", &a, &b, &c);

    sum = (int)a + (int)b + (int)c;
    avg = (a + b + c) / 3;

    printf("sum %d \n", sum);
    printf("avg %d", avg);

    return 0;
}

 

3. 아래의 프로그램을 작성하여 디버깅을 하면서 디버깅 창에서 화살표가 ① 위치에 있을 때 a의 값이 얼마인지 출력하시오.

#include <stdio.h>
int main(){
    int a = 5;

    a+= 10;
    a = a - 1; // ------------- ①

    printf("%d\n", 15);

    return 0;
}

 

최초 a=5에 의해 a의 값은 5
a += 10에 의해 a의 값이 15로 변한다

이때 값을 출력하라고 했으므로 15를 출력하면 된다.

a = a - 1에 의해 a의 값이 14가 된다

 

4. 다음의 프로그램을 작성하여 같은 방법으로 ①, ②, ③ 위치에서 디버깅 창이 표시된 a의 값을 각각 출력하시오.

#include <stdio.h>
#include <time.h>
int main(){
    int a = 0;
    struct tm tt;

    time_t now;
    time(&now);
    tt = *localtime(&now);
    a = tt.tm_year;
    a += tt.tm_mday;

    printf("%d %d %d\n", 0, 123, 145);

    return 0;
}

a = 0
a = 123
a = 124
a = 145