01. 다음과 같이 배열 arr[10]에 데이터가 있다. print_array(), compute_avg(), find_max(), find_min() 함수는 각각 배열을 출력, 평균값을 계산해서 return, 배열의 최대값과 최소값을 구해서 return 하는 함수들이다. 함수들을 완성하여 화면과 같이 출력되도록 하시오. 

#include <stdio.h>


void print_array(int arr[], int n) {
	for (int i = 0; i < n; i++) {
		printf("%d ", arr[i]);
	}
	printf("\n");
}

double compute_avg(int arr[], int n) {
	int sum = 0;
	for (int i = 0; i < n; i++) {
		sum += arr[i];
	}
	return (double)sum / n;
}

int find_max(int arr[], int n) {
	int max = arr[0];
	for (int i = 1; i < n; i++) {
		if (max < arr[i])
			max = arr[i];
	}
	return max;
}

int find_min(int arr[], int n) {
	int min = arr[0];
	for (int i = 1; i < n; i++) {
		if (min > arr[i])
			min = arr[i];
	}
	return min;
}

void main() {
	int arr[10] = { 10, 30, 5, 20, 44, 3, 100, 88, 9, 101 };

	print_array(arr, 10);
	printf("평균 = %lf\n", compute_avg(arr, 10));
	printf("최대 = %d\n", find_max(arr, 10));
	printf("최소 = %d\n", find_min(arr, 10));
}

02. 프로그램에서처럼 구조체를 선언하여 N개의 점들의 좌표가 주어졌다. 그 점들을 둘러싸는 최소 크기의 사각형의 두 점 좌표 P1, P2를 구하고 사각형의 면적을 구하는 프로그램을 완성하시오.
(주의1) print_point() 함수는 좌표를 출력하는 함수이다. 화면과 main()에서 호출하는 형식을 참조할 것.
(주의2) main() 부분은 주어진 변수만을 이용하여 프로그램 할 것. (변수 추가하지 말 것)

#include <stdio.h>


#define N 4
#define ABS(x)    (((x)>0)?(x): -(x))   
struct Point {
    int   x;
    int   y;
};
void print_point(struct Point *p)
{
    printf("(%d, %d)", (*p).x, p->y);
}
void main()
{
    struct  Point p[N] = { {1,2}, {6, 1}, {3,4}, {4,5} };
    struct Point P1, P2;
    int area; // 면적
    int i;

    for (i = 0; i < N; i++) {
        printf("p[%d] =", i);
        print_point(&p[i]);
        printf("\n");
    }
    
    P1.x = p[0].x;
    P1.y = p[0].y;
    P2.x = p[0].x;
    P2.y = p[0].y;
    for (int i = 1; i < N; i++) {
        if (P1.x > p[i].x)
            P1.x = p[i].x;
        else if (P2.x < p[i].x)
            P2.x = p[i].x;

        if (P1.y > p[i].y)
            P1.y = p[i].y;
        else if (P2.y < p[i].y)
            P2.y = p[i].y;
    }

    printf("P1="); print_point(&P1); 
    printf(" P2="); print_point(&P2);

    area = (P2.x - P1.x) * (P2.y - P1.y);
    printf("  면적=%d\n", area);
}

+ Recent posts