반응형
전달된 수들 중 가장 큰 수를 반환하는 함수.
#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'); }
반응형