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

C언어 함수 주요예제 2

라이피 (Lypi) 2018. 5. 15. 23:14
반응형

전달된 수들 중 가장 큰 수를 반환하는 함수.

#include <stdio.h>

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];
		}
	}

	return mx;
}


팩토리얼을 계산하는 함수

#include <stdio.h>

unsigned long int calc_factorial(int n);

int main()
{
	int num;
	
	//13이 넘어가면 오버플로우가 일어난다.
	printf("팩토리얼 값을 계산할 수를 입력하세요 : "); scanf_s("%d", &num);

	if (num <= 0) {
		printf("%d는 팩토리얼 값을 계산할 수 없습니다. \n",num);
	}
	else {
		for (int i = 1; i <= num; i++) {
			printf("%d의 팩토리얼 값은 %11lu입니다. \n", i, calc_factorial(i));
		}

		
	}

}

unsigned long int calc_factorial(int n)
{
	int facto = 1;

	for (int i = 1; i <= n; i++) {
		facto *= i;
	}

	return facto;
}


영어 모음, 자음, 대문자, 소문자, 숫자를 카운트하는 함수를 이용하는 프로그램.

#include <stdio.h>

int is_vowel(char c);
int is_alphabet(char c);
int is_upper(char c);
int is_lower(char c);
int is_digit(char c);

int main()
{
	char ch;
	int vno = 0;	// 모음의 갯수를 기억할 변수
	int cno = 0;	// 자음의 갯수를 기억할 변수
	int uno = 0;	// 대문자의 갯수를 기억할 변수
	int lno = 0;	// 소문자의 갯수를 기억할 변수
	int dno = 0;	// 숫자의 갯수를 기억할 변수

	printf("문자열을 입력하세요 : Ctrl+z (EXIT) ");

	//(ch = getchar()) != EOF 는 통함.... 이유가 뭘까?
	while ((ch = getchar()) != EOF) { 
		if (is_vowel(ch)) {
			vno++;
		}
		else if (is_alphabet(ch)) {
			cno++;
		}

		if (is_upper(ch)) {
			uno++;
		}
		else if (is_lower(ch)) {
			lno++;
		}
		else if(is_digit(ch)) {
			dno++;
		}
	}

	printf("모음의 갯수 : %d \n", vno);
	printf("자음의 갯수 : %d \n", cno);
	printf("대문자의 갯수 : %d \n", uno);
	printf("소문자의 갯수 : %d \n", lno);
	printf("숫자의 갯수 : %d \n", dno);
}

int is_vowel(char c)
{
	switch (c) {
	case 'a': case 'e': case 'i': case 'o': case 'u':
	case 'A': case 'E': case 'I': case 'O': case 'U':
		return 1;
	default :
		return 0;
	}
}

int is_alphabet(char c)
{
	return (is_upper(c) || is_lower(c));
}

int is_upper(char c) 
{
	return (c >= 'A' && c <= 'Z');
}

int is_lower(char c)
{
	return (c >= 'a' && c <= 'z');
}

int is_digit(char c)
{
	return (c >= '0' && c <= '9');
}


반응형