연재 완료/C Lang 예제코드 모음

C언어 함수 실습문제 풀이 CH7 (5,6)

라이피 (Lypi) 2018. 5. 18. 15:19
반응형

Call by Refelence 형식을 사용한 함수. 

#include <stdio.h>

void ball(double r, double* c_area, double* s_area, double* volume);

int main()
{
	double radius, c_area, s_area, volume;
	
	printf("반지름을 입력해주세요 : "); scanf_s("%lf", &radius);
	
	ball(radius, &c_area, &s_area, &volume);
	
	printf("원의 면적 = %.2lf \n", c_area);
	printf("구의 면적 = %.6lf \n", s_area);
	printf("구의 부피 = %.6lf \n", volume);

}

void ball(double r, double* c_area, double* s_area, double* volume)
{
	const double PI = 3.141592;

	*c_area = PI * r*r;
	*s_area = 4.0 * PI*r*r;					
	*volume = (4.0 / 3.0) * PI * r*r*r;
	//소수점 연산을 할 때는 정수에 .0을 꼭 붙입시다.
}



간단한 배열 정렬 프로그램

#include <stdio.h>

void ordering(int arr[], int arr_size);
void show_arr(int arr[], int arr_size);

int main()
{
	int arr[] = {3,4,5,2,6,1,15,64};

	printf("정렬 전 배열 \n");
	show_arr(arr, sizeof(arr) / sizeof(int));

	ordering(arr, sizeof(arr) / sizeof(int));

	printf("정렬 후 배열 \n");
	show_arr(arr, sizeof(arr) / sizeof(int));

	
}

// 간단한 교환 정렬 함수
void ordering(int arr[], int arr_size)
{
	for (int i = 0; i < arr_size - 1; i++) {
		for (int k = i + 1; k < arr_size; k++) {
			if (arr[i] > arr[k]) {
				arr[i] ^= arr[k]; arr[k] ^= arr[i]; arr[i] ^= arr[k];
			}
		}
	}
}

//배열 출력 함수
void show_arr(int arr[], int arr_size)
{
	for (int i = 0; i < arr_size; i++) {
		printf("%d ", arr[i]);
	}

	printf("\n");
}


반응형