반응형

*C언어 함수관련

1. 함수 생성
#include <stdio.h>
#pragma warning (disable: 4996)

void sol() {

}

int main(void) {
  sol();

  return 0;
}



2. 함수 (매개변수)
#include <stdio.h>
#pragma warning (disable: 4996)

void sol1(int num) {
  
}
void sol2(float num) {

}

int main(void) {
  sol1(10);
  sol2(5.5);

  return 0;
}



3. 함수(복수개의 매개변수)
#include <stdio.h>
#pragma warning (disable: 4996)

void sol1(int num, char a, float num2) {

}

void sol2(float a, int b) {
  
}

int main(void) {
  sol1(10, 'k', 23.5);
  sol2(5.5, 11);

  return 0;
}



4. 함수(매개변수, 리턴)
#include <stdio.h>
#pragma warning (disable: 4996)

int sol1(int a, char b, double c) {
  return 0;
}

char sol2(double a, int b) {
  return 'a';
}

long sol3() {
  return 1;
}

double sol4() {
  return 5.5;
}

int main(void) {
  int i = sol1(10, 'k', 23.5);
  char c = sol2(5.5, 11);
  long l = sol3();
  double d = sol4();

  return 0;
}



// 문제 : 함수 응용(4칙연산 구현)
#include <stdio.h>
#pragma warning (disable: 4996)

int add(int a, int b) {
  return a + b;
}
int minus(int a, int b) {
  return a - b;
}
int multiply(int a, int b) {
  return a * b;
}
int divide(int a, int b) {
  return a / b;
}
double divide2(int a, int b) {
  return a / (double)b;
}
int mod(int a, int b) {
  return a % b;
}

int main(void) {
  int a = 0;

  a = add(10, 20);
  printf("두 수의 합 : %d\n", a);
  // 출력 => 두 수의 합 : 30

  a = minus(10, 20);
  printf("두 수의 차 : %d\n", a);
  // 출력 => 두 수의 합 : -10

  a = multiply(10, 20);
  printf("두 수의 곱 : %d\n", a);
  // 출력 => 두 수의 곱 : 200

  a = divide(40, 20);
  printf("두 수를 나눈 몫 : %d\n", a);
  // 출력 => 두 수를 나눈 몫 : 2

  double b = divide2(39, 5);
  printf("두 수를 나눈 몫 : %f\n", b);
  // 출력 => 두 수를 나눈 몫 : 7.800000

  a = mod(40, 3);
  printf("두 수를 나눈 나머지 : %d\n", a);
  // 출력 => 두 수를 나눈 나머지 : 1

  return 0;
}



// 문제 : 입력받은 정수가 짝수인지 아닌지 판별해주는 함수 구현

#include <stdio.h>

int is_even(int a) {
  
  if( a % 2 == 0) {
    return 1;
  } else {
    return 0;
  }
  
}

int main(void) {
  printf("10은(는) 짝수인가요? : %d\n", is_even(10));
  printf("11은(는) 짝수인가요? : %d\n", is_even(11));
  return 0;
}



// 문제 : 입력받은 정수가 3의 배수인지 알려주는 함수 구현
#include <stdio.h>
#pragma warning (disable: 4996)

int is_3_multiple(int a) {
  return a % 3 == 0;
}

int main(void) {
  printf("10은(는) 3의 배수인가요? : %d\n", is_3_multiple(10));
  printf("12은(는) 3의 배수인가요? : %d\n", is_3_multiple(12));

  return 0;
}



// 문제 : 입력받은 정수가 100보다 큰지 알려주는 함수 구현
#include <stdio.h>

int is_bigger_than_100(int a) {
  return a > 100;
}



// 문제 : 입력받은 정수가 100보다 크고 200보다 작은지 알려주는 함수 구현
#include <stdio.h>

int is_bigger_than_100_and_less_than_200(int a) {
  return a > 100 && a < 200;
}

int main(void) {
  printf("128은(는) 100보다 크고 200보다 작습니다. : %d\n", is_bigger_than_100_and_less_than_200(128));
  printf("28은(는) 100보다 크고 200보다 작습니다. : %d\n", is_bigger_than_100_and_less_than_200(28));
  return 0;
}

int main(void) {
  printf("128은(는) 100보다 큽니다. : %d\n", is_bigger_than_100(128));
  printf("28은(는) 100보다 큽니다. : %d\n", is_bigger_than_100(28));
  return 0;
}



// 문제 : 입력받은 정수의 모든 약수를 화면에 출력해주는 함수 구현
#include <stdio.h>

void print_divisors(int a) {
  for(int i = 1; i <= a; i++) {
    if(a % i == 0) {
      printf("%d\n", i);
    }
  }
}

int main(void) {
  
  print_divisors(1000);

  return 0;
}



// 문제 : 입력받은 정수의 모든 약수의 합을 리턴하는 함수 구현
#include <stdio.h>
int get_divisor_sum(int num) {
  int sum = 0;

  for ( int i = 1; i <= num; i++ ) {
    if ( num % i == 0 ) {
      sum += i;
    }
  }

  return sum;
}

int main(void) {
  int sum;

  sum = get_divisor_sum(1000);
  printf("1000의 모든 약수의 합 : %d\n", sum);

  sum = get_divisor_sum(100);
  printf("100의 모든 약수의 합 : %d\n", sum);

  return 0;
}



// 문제 : 입력받은 정수가 소수인지 알려주는 함수 구현
( 소수 : 1과 자기자신을 약수로 갖는 수 ,( 1은 소수가 아니다 ))
#include <stdio.h>
#pragma warning (disable: 4996)

int is_prime_number(int a) {

  if( a <= 1 ) {
    return 0;
  } 

  int count = 0;

  for ( int i = 2; i <= a; i++) {
    if ( a % i == 0 ) {
      count++;
    }
  }

  if(count == 1) {
    return 1;
  } else {
    return 0;
  }
}

int main(void) {
  printf("10이 소수인가요? : %d\n", is_prime_number(10)); //0 - 1 2 5 10
  printf("5 가 소수인지 체크 : %d\n", is_prime_number(5)); //1 - 1 5
  printf("6 이 소수인지 체크 : %d\n", is_prime_number(6)); //0 - 1 2 3 6
  printf("7 이 소수인지 체크 : %d\n", is_prime_number(7)); //1 - 1 7
  printf("8 이 소수인지 체크 : %d\n", is_prime_number(8)); //0 - 1 2 4 8
  printf("9 가 소수인지 체크 : %d\n", is_prime_number(9)); //0 - 1 2 3 3 9
  printf("10 이 소수인지 체크 : %d\n", is_prime_number(10)); //0 - 1 2 5 10
  return 0;
}



// 문제 : 입력받은 숫자가 10이라고 할때 1부터 10 사이에 존재하는 모든 소수를 출력하는 함수 구현
#include <stdio.h>
#pragma warning (disable: 4996)

int is_prime_number(int a) {

  if(a <= 1) {
    return 0;
  }

  for ( int i = 2; i < a; i++ ) {
    if ( a % i == 0 ) {
      return 0;
    }
  }
  return 1;
}

void print_1_to_n_prime_numbers(int a) {

  for (int i = 1; i <= a; i++) {
    if(is_prime_number(i)) {
      printf("%d\n", i);
    }
  } 
}


int main(void) {
  print_1_to_n_prime_numbers(10);
  return 0;
}
반응형

+ Recent posts