728x90

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

C언어 함수 주요예제 4. (재귀함수 예제들)

팩토리얼을 구하는 재귀함수 #include long factorial(long n); int main() { printf("7! = %d \n", factorial(7)); } long factorial(long n) { if (n == 0) { return 1; } else { return n * factorial(n - 1); } }//별 의미 없지만 재귀함수의 개념을 이해하기에는 가장 좋은 팩토리얼 함수. 스택의 원리를 이용하여 입력받은 문자열을 거꾸로 출력해주는 함수 #include void print_back(); int main() { printf("문자열을 입력하세요 : "); print_back(); printf("\n"); } //stack의 원리를 이용한 재귀함수 void print_b..

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

Call by Refelence 형식을 사용한 함수. #include 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, ..

C언어 함수 실습문제 풀이 CH7 (3,4) (구의 부피와 겉넓이, 헤론의 공식)

구의 부피와 겉넓이를 구하는 함수 (구의 부피는, 구의 겉넓이는 ) #include #include #define PI 3.14 double ball_volume(float r); double ball_surface(float r); double ball_volume_to_surface(double r); int main() { float r; printf("구의 반지름을 입력하세요 : "); scanf_s("%f", &r); printf("반지름이 %.2f일 때 구의 부피는 %.2f 입니다.\n", r, ball_volume(r)); printf("반지름이 %.2f일 때 구의 겉넓이는 %.2f 입니다. \n", r, ball_surface(r)); printf("부피가 %.2f일 때, 겉넓이는 %.2f..

c언어 함수 주요예제 3. (유클리드 호제법)

유클리드 호제법을 이용하여 최대공약수를 구하는 함수. #include int gcd(int a, int b); int main(void) { int i, k; printf("최대 공약수를 구할 수를 입력받습니다. \n"); printf("첫번째 수를 입력하세요 : "); scanf_s("%d", &i); printf("두번째 수를 입력하세요 : "); scanf_s("%d", &k); printf("%d와 %d의 최대공약수는 %d입니다.", i, k, gcd(i, k)); } //유클리드 호제법을 이용해서 최대공약수를 계산하는 함수 int gcd(int a, int b) { int abs_a = (a > 0) ? a : -a; int abs_b = (b > 0) ? b : -b; //gcd(0,0) = ..

C언어 함수 주요예제 2

전달된 수들 중 가장 큰 수를 반환하는 함수. #include int max(int arr[], int n); int main() { const int N = 10; int num_arr[N]; printf("배열에 수를 저장합니다. \n"); for (int i = 0; i < N; i++) { printf("%d번째 수를 입력하세요 : ", i + 1); scanf_s("%d", &num_arr[i]); } printf("입력하신 값중 가장 큰 값은 %d 입니다. ", max(num_arr, N)); } int max(int arr[], int n) { int mx = arr[0]; for (int i = 1; i < n; i++) { if (mx < arr[i]) { mx = arr[i]; } } ..

C언어 실습문제 풀이 CH7 (1,2)

1. 난수 발생함수를 이용하여 만든 주사위 눈을 알아맞히는 게임을 작성하라. #include #include #include int main(void) { srand((unsigned)time(NULL)); int dice_value, dot; int input; int ch; while (1) { dice_value = rand(); printf("\n"); printf("1. 시작 \n"); printf("2. 종료 \n"); scanf_s("%d", &ch); switch (ch) { case 1: printf("\n"); printf("주사위 눈수를 입력해주세요 : "); scanf_s("%d", &dot); do { printf("\n"); printf("주사위 눈 수를 맞춰보세요. 포기하시려면..

C언어 함수 주요예제 1

표준함수 time(), srand(), rand()를 사용하여 난수를 만드는 프로그램. #include #include // time()함수 사용 #include //rand(), srand()함수 사용 int main(void) { //난수 생성기를 초기화한다. //인수로 time(NULL)값을 주면 매 실행마다 다른 난수가 나온다. //srand는 unsigned int형을 인자로 받고, time() 함수는 time_t 값을 리턴하므로 경고를 피하기 위해서 형변환을 해줬다. //안해줘도 잘 작동하지만 사소한 경고가 뜬다. srand((unsigned)time(NULL)); for (int i = 0; i < 5; i++) { printf("난수 발생 결과 %d : %d \n", i + 1, rand(..

C언어 연습문제풀이 CH6 (21. 달팽이 배열 문제)

21. 다음과 같이 배열에 저장하는 프로그램을 작성하라. #include int main(void) { //변수 선언부 const int R = 7, C = 7; int ssarray[R][C] = { 0, }; //전부 0으로 초기화 int row = 0, column = 0; int row_Uend = 1, row_Dend = R - 1, column_Lend = 0, column_Rend = C - 1; char direction = 'R'; //배열 초기화 for (int n = 1; n < (R * C) + 1; n++) { switch (direction) { case 'R' : ssarray[row][column] = n; if (column == column_Rend) { column_Re..

C언어 연습문제 풀이 CH6 (18~20)

문제 출처 : YES C (정보공학연구소/생능출판사) 18. 황금비를 구하는 프로그램을 배열을 이용해 작성하라. 값이 약 1.61803이 되려면 언제까지 계산하면 될까? #include #include //ceil, round, floor함수 사용 int main(void) { //변수 선언부 const int index = 50; int fibonacci[index] = { 1,1, }; float goldenratio; //피보나치 수열 초기화 for (int i = 2; i < index; i++) { fibonacci[i] = fibonacci[i - 2] + fibonacci[i - 1]; } //피보나치 수열 출력, int형으로 저장할 경우 46번째 수에서 오버플로우가 일어난다. for (in..

C언어 연습문제 풀이 CH6 (13~17)

문제 출처 : YES C (정보공학연구소/생능출판사) 13. 문자열을 배열 a[10]에 입력받아 이를 배열 b[10]에 복사하여 아래와 같이 출력하는 프로그램을 작성하라.input string (a) : Koreanouput string : a = Korean, b = Korean #include #include int main(void) { char a[10], b[10]; printf("input string(a) : "); scanf_s("%s", a, sizeof(a)); strcpy_s(b,a); printf("output string : a = %s , b = %s \n", a, b); } 14. 문자열을 배열 a[10]와 b[10]에 입력받아 이를 교환하여 출력하는 프로그램을 작성하라. #i..

반응형