반응형

주사위를 던져서 각각의 면이 몇 번 나왔는지를 출력하는 프로그램을 작성하라. 주사위의 면은 난수를 이용하여 생성한다. 주사위를 던지는 함수 get_dice_face()를 만들고 이 함수 안에서 각각의 면이 나올 때마다 그 횟수를 정적 지역 번수를 이용하여 기억하게 하라. get_dice_face() 호출 횟수가 100의 배수일 때마다 면이 나온 횟수를 출력한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include <stdio.h>
#include <stdlib.h>
void get_dice_face(void);
int check(void);
int main(void)
{
    int k;
    int loop=0;
    while(1){
 
        get_dice_face();    
        while(1)
        {k=check();
        if(k==1)
        break;
        else if(k==2)
        {loop++;
        break;}
        else
            continue;
    }
        if(loop==1)
            break;
 
    }
    return 0;
}
void get_dice_face(void)
{
    int i,j,x;
    static int a=0;
    static int b=0;
    static int c=0;
    static int d=0;
    static int e=0;
    static int f=0;
for(i=1;i<=100;i++)
{
    for(j=1;j<=6;j++)
    {
        x= (rand()%6)+1;
        printf("%d ",x);
        if(x==1)
            a++;
        else if(x==2)
            b++;
        else if(x==3)
            c++;
        else if(x==4)
            d++;
        else if(x==5)
            e++;
        else if(x==6)
            f++;
    }
    printf("\n");
}
printf("1면:%d 2면:%d 3면:%d 4면:%d 5면:%d 6면:%d\n",a,b,c,d,e,f);
}
int check(void)
{
    char quit;
    static int z;
    while(1)
    {printf("계속하시겠습니까?(y/n)");
    scanf("%c"&quit);
    if(quit=='y')
    z=1;
    else if(quit=='n')
    z=2;
    else
        z=3;
    getchar();
    return z;
    }
}
cs






반응형
반응형

덧셈, 뺄셈, 곱셈, 나눗셈을 지원하는 계산기 프로그램을 작성하여 보자. 이번에는 각 연산들이 몇 번씩 계산되었는지를 기억하게 하자. 각 연산을 지원하는 함수들은 자신이 호출된 횟수를 화면에 출력한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <stdio.h>
void calculate(int a, int b, char c);
int main(void)
{
    int x, y;
    char z;
    while(1)
    {
    printf("연산을 입력하시오: ");
    scanf("%d %c %d"&x, &z, &y);
    calculate(x, y, z);
    }
    return 0;
}
void calculate(int a, int b, char c)
{
    static int plus=0;
    static int minus=0;
    static int muti=0;
    static int divi=0;
    static int namu=0;
    if (c=='+')
    {plus++;
    printf("덧셈은 총%d번 실행되었습니다.\n", plus);
    printf("연산결과: %d\n", a+b);}
    else if(c=='-')
    {minus++;
    printf("뺄셈은 총%d번 실행되었습니다.\n", minus);
    printf("연산결과: %d\n", a-b);}
    else if(c=='*')
    {muti++;
    printf("곱셈은 총%d번 실행되었습니다.\n", muti);
    printf("연산결과: %d\n", a*b);}
    else if(c=='/')
    {divi++;
    printf("나눗셈은 총%d번 실행되었습니다.\n", divi);
    printf("연산결과: %d\n", a/b);}
    else if(c=='%')
    {namu++;
    printf("나머지연산은 총%d번 실행되었습니다.\n", namu);
    printf("연산결과: %d\n", a%b);}
    else
    printf("잘못된 입력입니다.\n");
}
cs




반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

정적 지역 변수 초기화  (0) 2016.08.04
주사위 던지기  (0) 2016.08.03
메뉴 시스템 만들기  (0) 2016.07.29
부동 소수점 수 일치 판별  (0) 2016.07.29
반올림 함수  (0) 2016.07.29
반응형

간단한 메뉴 시스템을 작성하여 보자. 다음과 같은 메뉴를 선택하고 사용자로부터 입력을 받아서 입력이 올바른지를 검사한다. 메뉴를 실제로 실행할 필요는 없다. 다만 메뉴의 이름을 화면에 출력하고 다시 반복한다.

(a)메뉴를 화면에 출력하고 원하는 메뉴를 선택하라는 메시지를 내보내는 함수 print_menu()를 작성한다.

(b)사용자로부터 하나의 정수를 읽은 후에 메뉴 번호의 상한과 하한을 넘지 않았는지를 검사하는 함수 check_menu_number()를 작성한다. 만약 사용자로부터 입력된 정수가 상한이나 하한을 벗어나면 print_menu()를 호출하여 화면에 메뉴를 표시한다. 범위 안에 드는 정수가 입력되면 메뉴를 처리하는 함수를 호출한다.

(c)각각의 메뉴를 처리하는 함수를 작성한다. 메뉴에 해당되는 함수가 호출되면 메뉴가 호출되었다는 메시지만을 출력하고 종료한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <stdio.h>
void print_menu(void);
void check_menu_number(int a);
void result(int a);
int main(void)
{
print_menu();
return 0;
}
void print_menu(void)
{
    int a;
printf("1. 햄버거\n");
printf("2. 치즈버거\n");
printf("3. 샌드위치\n");
printf("4. 종료\n");
printf("원하는 메뉴를 선택하시오: ");
    scanf("%d"&a);
    check_menu_number(a);
}
void check_menu_number(int a)
{
    if(a<1||a>4)
        print_menu();
    else
        result(a);
}
void result(int a)
{
if(a==1)
    printf("1번 메뉴가 선택되었습니다.\n");
else if(a==2)
        printf("2번 메뉴가 선택되었습니다.\n");
else if(a==3)
        printf("3번 메뉴가 선택되었습니다.\n");
else if(a==4)
        printf("종료되었습니다.\n");
}
cs




반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

주사위 던지기  (0) 2016.08.03
연산 횟수를 세는 계산기  (0) 2016.08.03
부동 소수점 수 일치 판별  (0) 2016.07.29
반올림 함수  (0) 2016.07.29
윤년 계산하기  (0) 2016.07.28
반응형

두개의 부동 소수점 수가 근사적으로 같은 값이면 1를 반환하고 근사적으로 같지 않으면 0를 넘겨주는 함수 f_equal(a, b)을 작성하라. 근사적으로 같다고 하는 것은 다음의 부등식을 만족하는 경우라고 가정한다.

(|a-b|/min(|a|,|b|))<e

부동 소수점 수의 절대값을 구하는 함수와 두수 중에서 최소값을 찾는 함수는 스스로 제작하여 사용하라. e는 상수로서 0.000001로 정의된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <stdio.h>
int f_equal(double a, double b);
const double e = 0.000001;
double min(double a, double b);
int main(void)
{
    double a, b;
    printf("실수를 입력하시오: ");
    scanf("%lf"&a);
    printf("실수를 입력하시오: ");
    scanf("%lf"&b);
    if(f_equal(a,b)==1)
        printf("두 개의 실수는 서로 같음\n");
    else if(f_equal(a,b)==0)
        printf("두 개의 실수는 서로 다름\n");
    return 0;
}
int f_equal(double a, double b)
{
double c, d;
{if(a-b>=0)
    c=a-b;
else
    c=-(a-b);}
d=c/min(a,b);
if(d<e)
    return 1;
else
    return 0;
}
double min(double a, double b)
{
if(a>=0)
    a=a;
else
    a=-a;
if(a>=0)
    b=b;
else
    b=-b;
if(a>=b)
    return a;
else
    return b;
}
cs




반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

연산 횟수를 세는 계산기  (0) 2016.08.03
메뉴 시스템 만들기  (0) 2016.07.29
반올림 함수  (0) 2016.07.29
윤년 계산하기  (0) 2016.07.28
오일러의 수e 구하기  (0) 2016.07.28
반응형

실수를 정수로 변환하면 소수점 이하는 잘려서 없어지게 된다. 예를 들어서 6.999를 정수로 변환하면 6이 된다. 실수에 0.5를 더하여 소수점 이하를 버리는 반올림 연상을 수행하는 함수 round(double f)를 작성하라. 단, f는 양수라고 가정하라.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
double round(double f);
int main(void)
{
    double a;
    printf("실수를 입력하시오: ");
    scanf("%lf"&a);
    printf("반올림한 값은 %lf입니다.\n", round(a));
    return 0;
}
double round(double f)
{
    double a;
    a=(int)(0.5+f);
    return a;
}
cs




반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

메뉴 시스템 만들기  (0) 2016.07.29
부동 소수점 수 일치 판별  (0) 2016.07.29
윤년 계산하기  (0) 2016.07.28
오일러의 수e 구하기  (0) 2016.07.28
소수 검사  (0) 2016.07.28
반응형

우리는 앞에서 윤년을 구하는 알고리즘을 학습하였다. 이것을 함수 is_leap(int year)함수로 작성하고 이 함수를 사용하여서 1년이 몇 일인지를 출력하는 프로그램을 작성하여 보자.

*윤년은 4의 배수이지만 100의 배수는 제외하고 400의 배수는 무조건 추가하면 구할 수 있다.

이것을 벤다이어그램과 부울대수로 나타내면 위와 같이 된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
int is_leap(int year);
int main(void)
{
    int year;
    printf("연도를 입력하시오: ");
    scanf("%d"&year);
    printf("%d년은 %d일입니다.\n", year, is_leap(year));
    return 0;
}
int is_leap(int year)
{
    int a;
    if(((year%4==0)&&(year%100!=0))||year%400==0)
        a=366;
    else
        a=365;
    return a;
}
cs


반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

부동 소수점 수 일치 판별  (0) 2016.07.29
반올림 함수  (0) 2016.07.29
오일러의 수e 구하기  (0) 2016.07.28
소수 검사  (0) 2016.07.28
두 점 사이의 거리  (0) 2016.07.27
반응형

오일러의 수e는 자연 로그의 밑수로 사용된다. 이 값은 다음과 같은 식에 의하여 근사치를 구할 수 있다. 본문에 있는 팩토리얼 값을 계산하는 함수 factorial()을 호출하여서 오일러의 수를 계산하는 프로그램을 작성하라.

e=1+(1/1!)+(1/2!)+(1/3!)+...+(1/n!)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <stdio.h>
double factorial(double a);
int main(void)
{
int x, i;
double j, k;
k=1;
printf("어디까지 계산할까요: ");
scanf("%d"&x);
for(i=1;i<=x;i++)
{
    j=1/factorial(i);
    k=k+j;
}
printf("오일러의 수는 %lf입니다.\n", k);
return 0;
}
double factorial(double a)
{
    double i,j;
    j=1;
    for(i=1;i<=a;i++)
    {
    j=j*i;
    }
    return j;
}
cs




반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

반올림 함수  (0) 2016.07.29
윤년 계산하기  (0) 2016.07.28
소수 검사  (0) 2016.07.28
두 점 사이의 거리  (0) 2016.07.27
n의 배수  (0) 2016.07.27
반응형

주어진 정수가 소수인지를 검사하는 함수 is_prime()을 작성하라. 이 함수를 이용하여 2부터 100 사이의 모든 소수를 출력하라.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <stdio.h>
void is_prime(int a);
int main(void)
{
    int a;
    printf("2부터 100사이의 소수를 출력합니다.\n");
    for(a=2;a<=100;a++)
    {
    is_prime(a);
    }
    return 0;
}
void is_prime(int a)
{
    int i, x;
    x=0;
    for(i=2;i<=a;i++)
    {
        if(a%i==0)
        {x++;
        if(x==2)
            break;//불필요한 계산 제거
        }
    }
    if(x==1)
        printf("%d ", a);
}

cs





반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

윤년 계산하기  (0) 2016.07.28
오일러의 수e 구하기  (0) 2016.07.28
두 점 사이의 거리  (0) 2016.07.27
n의 배수  (0) 2016.07.27
세로 막대 그래프  (0) 2016.07.27
반응형

두 점 사이의 거리를 계산하는 함수를 작성하여 보자. 2차원 공간에서 두 점(x1, y1)와 (x2, y2) 사이의 거리를 계산하는 get_distance(double x1, double y1, double x2, double y2)를 작성하라. 다음과 같은 두 점 사이의 거리를 계산하는 공식을 사용하라. 제곱근은 sqrt() 라이브러리 함수를 사용하라.

d=(((x1-x2)^2)+((y1-y2)^2))^(1/2)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <math.h>
double get_distance(double x1, double y1, double x2, double y2);
int main(void)
{
    double a, b, c, d;
    printf("첫번째 점의 좌표를 입력하시오:(x,y) ");
    scanf("%lf %lf"&a, &b);
    printf("두번째 점의 좌표를 입력하시오:(x,y) ");
    scanf("%lf %lf"&c, &d);
    printf("두점 사이의 거리는 %lf입니다.\n", get_distance(a, b, c, d));
    return 0;
}
double get_distance(double x1, double y1, double x2, double y2)
{
    double d;
    d=sqrt(((x1-x2)*(x1-x2))+((y1-y2)*(y1-y2)));
    return d;
}
cs




반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

오일러의 수e 구하기  (0) 2016.07.28
소수 검사  (0) 2016.07.28
n의 배수  (0) 2016.07.27
세로 막대 그래프  (0) 2016.07.27
0.0 부터 1.0까지의 난수  (0) 2016.07.27
반응형

두 개의 정수 n, m을 입력받아서 n이 m의 배수이면 1을 반환하고 그렇지 않으면 0을 반환하는 함수 is_multiple(int n, int m)를 작성하고 테스트하여 보자.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
void is_multiple(int n, int m);
int main(void)
{
    int a, b;
    printf("첫 번째 정수를 입력하시오: ");
    scanf("%d"&a);
    printf("두 번째 정수를 입력하시오: ");
    scanf("%d"&b);
    is_multiple(a, b);
    return 0;
}
void is_multiple(int n, int m)
{
    if(n%m==0)
        printf("%d은 %d의 배수입니다.\n", n, m);
    else
        printf("%d은 %d의 배수가 아닙니다.\n", n, m);
}
cs



반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

소수 검사  (0) 2016.07.28
두 점 사이의 거리  (0) 2016.07.27
세로 막대 그래프  (0) 2016.07.27
0.0 부터 1.0까지의 난수  (0) 2016.07.27
동전 던지기 게임  (0) 2016.07.27
반응형

화면에 세로로 막대 그래프를 그리는 프로그램을 작성하여 보자. 인수의 값만큼의 별표 문자를 출력하는 함수print_value(int n)을 작성하라. 반복적으로 사용자로부터 값을 입력받아서 print_value()를 호출하여입력값만큼 막대를 그리는 프로글매을 오나성하라. 사용자가 음수를 입력하면 반복을 중단하라.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
void print_value(int n);
int main(void)
{
    int a;
    while(1)
    {
    printf("값을 입력하시오(종료를 음수): ");
    scanf("%d"&a);
    if(a>=0)
    print_value(a);
    else 
        break;
    }
    return 0;
}
void print_value(int n)
{
int i;
for(i=1;i<=n;i++)
{
printf("*\n");
}
}
cs




반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

두 점 사이의 거리  (0) 2016.07.27
n의 배수  (0) 2016.07.27
0.0 부터 1.0까지의 난수  (0) 2016.07.27
동전 던지기 게임  (0) 2016.07.27
난수 발생기  (0) 2016.07.27
반응형

0.0부터 1.0까지의 난수를 반환하는 함수 f_rand()를 작성하고 5번 호출하여 본다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
double f_rand(void);
int main(void)
{
    int i;
    srand((unsigned)time(NULL));
    for(i=1;i<=5;i++)
    {
    printf("%lf ", f_rand());
    }
    return 0;
}
double f_rand(void)
{
    double a;
    a = rand()/(double)RAND_MAX;//랜덤의 최대값
    return a;
}
cs


반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

n의 배수  (0) 2016.07.27
세로 막대 그래프  (0) 2016.07.27
동전 던지기 게임  (0) 2016.07.27
난수 발생기  (0) 2016.07.27
사인값 출력  (0) 2016.07.27
반응형

앞에서 작성한 b_rand()함수를 이용하여 간단한 동전 던지기 게임을 시뮬레이션하여 보자. 컴퓨터가 동전을 던지고 사용자는 앞뒤를 말한다. 컴퓨터는 b_rand()를 이용하여 생성된 난수가 1이면 동전의 앞면으로 간주하고 0이면 동전의 뒷면으로 간주한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int b_rand(void);
int main(void)
{
    int a;
    char b;
    while(1)
    {
    printf("앞면 또는 뒷면(1또는 0):");
    scanf("%d"&a);
    {if(a==b_rand())
        printf("맞았습니다.\n");
    else
        printf("틀렸습니다.\n");}
    printf("계속하시겠습니까(y 또는 n): ");
    getchar();
    scanf("%c"&b);
    if(b=='n')
        break;
    else if(b=='y')
        continue;
    }
    return 0;
}
int b_rand(void)
{
int a;
srand((unsigned)time(NULL));
    a=rand()%2;
    return a;
}
cs




반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

세로 막대 그래프  (0) 2016.07.27
0.0 부터 1.0까지의 난수  (0) 2016.07.27
난수 발생기  (0) 2016.07.27
사인값 출력  (0) 2016.07.27
소득세 계산  (0) 2016.07.27
반응형

난수(random number)는 컴퓨터를 이용한 문제 해결에서 많이 사용된다. 특히 수학적인 분석이 너무 복잡한 경우에 시뮬레이션을 사용하면 실제로 제품을 제작하지 않고서도 많은 실험을 할 수 있다. 비주얼 C++의 경우, rand()가 한번 호출될 때마다 0에서 32767까지의 정수를 같은 확률로 선택하여 반환한다. rand() 함수를 이용하여 0 또는 1 값을 무작위로 반환하는 함수 b_rand()를 작성하고 5번 호출하여 보자.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void b_rand(void);
int main(void)
{
    b_rand();
    return 0;
}
void b_rand(void)
{
int i;
srand((unsigned)time(NULL));
for(i=1;i<=5;i++)
{
    printf("%d ", rand()%2);
}
}
cs




반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

0.0 부터 1.0까지의 난수  (0) 2016.07.27
동전 던지기 게임  (0) 2016.07.27
사인값 출력  (0) 2016.07.27
소득세 계산  (0) 2016.07.27
원의 면적 구하기  (0) 2016.07.26
반응형

sin() 라이브러리 함수를 호출하여서 0도부터 180도까지 10도 단위로 사인 함수 값을 출력하여 보자. 추가적으로 아예 각도를 받아서 사인값을 반환하는 함수 sin_degree(double degree)를 작성하여 문제를 해결할 수 있는가?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <math.h>
const double pi = 3.141592;
double sin_degree(double degree);
int main(void)
{
    int i=0;
    for(i=0;i<=180;i+=10)
    {
    printf("sin(%d)의 값은 %lf\n", i, sin_degree(i));
    }
    return 0;
}
double sin_degree(double degree)
{
    double a,b;
    a = degree*(pi/180);
    b = sin(a);
    return b;
}
cs


반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

동전 던지기 게임  (0) 2016.07.27
난수 발생기  (0) 2016.07.27
소득세 계산  (0) 2016.07.27
원의 면적 구하기  (0) 2016.07.26
화씨 온도 변환기  (0) 2016.07.26
반응형

월급에 붙는 소득세를 계산하는 함수 get_tax(int income)를 작성하고 테스트하여 보자. 과표 구간은 1000만원 이하 8%, 1000만원 초과는 10%로 되어 있다고 가정한다. 사용자로부터 소득을 입력받아서 세금을 계산하는 프로그램을 작성하라.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <stdio.h>
double get_tax(int income);
int get_income(void);
int main(void)
{
    int x;
    x=get_income();
    printf("소득세는 %lf만원입니다.\n", get_tax(x));
    return 0;
}
double get_tax(int income)
{
    double tax;
    {if(income<=1000)
        tax = income*0.08;
    else
        tax = income * 0.1;}
    return tax;
 
}
int get_income(void)
{
    int a;
printf("소득을 입력하시오(만원): ");
scanf("%d"&a);
return a;
}
cs



필자는 income을 int형으로 설정 하고 10보다 작을 경우 결과 값이 0으로 나타나는 것이 싫어서 double 형으로 설정하였다. 그래서 답도 80.0000 이 나왔다. 만약 이것이 싫다면 아래 코드를 참조하면 된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <stdio.h>
int get_tax(int income);
int get_income(void);
int main(void)
{
    int x;
    x=get_income();
    printf("소득세는 %d만원입니다.\n", get_tax(x));
    return 0;
}
int get_tax(int income)
{
    int tax;
    {if(income<=1000)
        tax = income*0.08;
    else
        tax = income * 0.1;}
    return tax;
 
}
int get_income(void)
{
    int a;
printf("소득을 입력하시오(만원): ");
scanf("%d"&a);
return a;
}
cs


반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

난수 발생기  (0) 2016.07.27
사인값 출력  (0) 2016.07.27
원의 면적 구하기  (0) 2016.07.26
화씨 온도 변환기  (0) 2016.07.26
정수 판별기  (0) 2016.07.26
반응형

원의 면적을 구하는 문제를 함수로 작성하여 보자. 다음과 같은 식을 이용하라. 원의 면적을 구하는 함수 cal_area(double radius)를 작성하고 함수를 호출하여 원의 면적을 출력하는 전체 프로그램을 완성하여라.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
double cal_area(double radius);
const double pi = 3.141592;
int main(void)
{
 
    double r;
    printf("원의 반지름을 입력하시오: ");
    scanf("%lf"&r);
    printf("원의 면적은 %lf입니다.\n", cal_area(r));
    return 0;
}
double cal_area(double radius)
{
double a;
= pi * radius * radius;
return a;
}
cs


반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

사인값 출력  (0) 2016.07.27
소득세 계산  (0) 2016.07.27
화씨 온도 변환기  (0) 2016.07.26
정수 판별기  (0) 2016.07.26
특정한 정수의 자리수를 반대로 출력하는 프로그램  (0) 2016.07.22
반응형

화씨 온도(F)를 섭씨 온도(C)로 변환하는 함수 f_to_c(double f)를 작성한다. 다음과 같은 식을 이용하라. 사용자로부터 화씨 온도를 입력받아서 함수를 호출하여 섭씨 온도로 변환한 후에 화면에 출력하도록 하라.

C=5.0/9.0*(F-32.0)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
double get_real(void);
double f_to_c(double a);
int main(void)
{
    double x, y;
    x=get_real();
    y=f_to_c(x);
    printf("섭씨 온도는 %lf도입니다.\n", y);
    return 0;
}
double get_real(void)
{
    double x;
printf("화씨 온도를 입력하시오: ");
scanf("%lf"&x);
return x;
}
double f_to_c(double f)
{
double x;
x=5.0/9.0*(f-32.0);
return x;
}
cs





반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

소득세 계산  (0) 2016.07.27
원의 면적 구하기  (0) 2016.07.26
정수 판별기  (0) 2016.07.26
특정한 정수의 자리수를 반대로 출력하는 프로그램  (0) 2016.07.22
순열(permutation)  (0) 2016.07.22
반응형

다음과 같은 간단한 기능을 하는 함수들을 작성하고, 사용자로부터 임의의 값을 입력받은 후에 작성한 함수들을 테스트하여 보자.

(a)주어진 정수가 짝수이면 1을 반환하고 홀수이면 0을 반환하는 함수 int even(int n)

{b)주어진 정수의 절대값을 구하는 함수 int absolute(int n)

(c)주어진 정수가 음수이면 -1을, 양수이면 1을 0이면 0을 반환하는 함수 int sign(int n)


나는 여기에 정수를 scan하는 함수와 출력하는 함수도 만들었다. 그리고 기본으로 무한루프를 생성한 후에(여러분에게 모든 가지수를 보여주기 위해서)

999999를 입력하면 프로그램이 종료되게 만들었다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <stdio.h>
int scan_integer(void);
int even(int n);
int absolute(int n);
int sign(int n);
void printer(int a, int b, int c);
 
int main(void)
{
    int a, b, c, d;
    while(1)
    {
    a = scan_integer(); //정수를 받음
    if(a==999999)
        break;
    b = even(a); //홀수 짝수 판별
    c = absolute(a); //절댓값
    d = sign(a); // 부호 판별
    printer(b, c, d); // 출력 
    }
    return 0;
}
int scan_integer(void)
{
    int x;
    printf("정수를 입력하시오: (그만하려면 999999입력):");
    scanf("%d"&x);
    return x;
}
int even(int n)
{
    int x=0;
    if(n%2==0)
        x=1;
    else
        x=0;
    return x;
}
int absolute(int n)
{
    int x=0;
    if(n<0)
        x=(-n);
    else
        x=n;
    return x;
}
int sign(int n)
{
    int y;
    if(n<0)
        y=-1;
    else if(n==0)
        y=0;
    else
        y=1;
    return y;
}
void printer(int a, int b, int c)
{
    {if(a==1)
        printf("even()의 결과: 짝수\n");
    else
        printf("even()의 결과: 홀수\n");}
    printf("absoulute()의 결과: %d\n", b);
    {if(c==-1)
    printf("sign()의 결과: 음수\n");
    else if(c==0)
    printf("sign()의 결과: 0\n");
    else
        printf("sign()의 결과: 양수\n");}
}
cs




반응형
반응형

사용자가 입력한 특정한 정수의 자리수를 반대로 출력하는 프로그램을 작성하라. 예를 들어서 사용자가 정수 1206을 입력하였다면 6021이 출력되어야 한다. 만약 음수를 입력하면 오류 메시지를 출력하라. do...while문을 사용하여 보라.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
int main(void)
{
    int a, w, x, y, z;
do{
printf("정수를 입력하세요: ");
scanf("%d"&a);
if(a>=0)
    break;
else
    printf("음수는 안됩니다.\n");
}while(1);
w=(a/1000)%10;
x=(a/100)%10;
y=(a/10)%10;
z=a%10;
printf("%d%d%d%d\n",z,y,x,w);
return 0;
}
 
cs




반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

화씨 온도 변환기  (0) 2016.07.26
정수 판별기  (0) 2016.07.26
순열(permutation)  (0) 2016.07.22
피보나치 수열  (0) 2016.07.22
제곱해서 더하기  (0) 2016.07.22

+ Recent posts