반응형
*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;
}
반응형
'프로그래밍 > C언어' 카테고리의 다른 글
컴퓨터 구성, 메모리, C언어 포인터 (0) | 2020.05.23 |
---|---|
C언어 함수(심화), 별찍기 (0) | 2020.05.22 |
C언어 이중반복문(While, for) (0) | 2020.05.19 |
C언어 반복문 심화 문제 (0) | 2020.05.19 |
C언어 반복문 while, for (0) | 2020.05.09 |