C 프로그래밍(새내기를 위한 첫 C언어 책) 연습문제 솔루션 :: chap04. 연산자11~16번 문제)

반응형

 


 

11. 다음 수식을 계산하는 프로그램을 작성하시오.

수식: f(x) = 2x³ - 3x² + 1/x

<소스 코드>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
int main() 
{
    int x;
    double result;
 
    printf("x입력: ");
    scanf("%d"&x);
 
    result = 2 * (x*x*x) - 3 * (x*x) + (1 / (double)x);
 
    printf("-> x=%d일 때\n", x);
    printf("f(x)=2x³- 3x²+ 1/x = %.1lf\n", result);
 
    return 0;
}
cs
<출력 화면>

 

 


12. 네 자리 정수(num)를 입력 받아 천, 백, 십, 일의 자리로 분리하여 출력하는 프로그램을 작성하시오. 

<소스 코드>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
int main() 
{
    int num;
    int thousand, hundred, ten, one;
 
    printf("네자리 정수를 입력하세요. : ");
    scanf("%d"&num);
 
    thousand = num / 1000;
    hundred = num % 1000 / 100;
    ten = num % 100 / 10;
    one = num % 10;
 
    printf("입력한 수는 %d천%d백%d십%d입니다.\n", thousand, hundred, ten, one);
 
    return 0;
}
cs

<출력 화면>

 

 


13. 조건 연산자를 이용해 세 수를 입력받아 가장 큰 수를 구하는 프로그램을 작성하시오. 

<소스 코드> 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
int main() 
{
    int a, b, c;
    int temp;
 
    printf("세 개의 정수 : ");
    scanf("%d %d %d"&a, &b, &c);
 
    a>b ? temp=a : temp=b;
    temp>c ? temp=temp : temp=c;
 
    printf(">> 가장 큰 수 = %d\n", temp);
 
    return 0;
}
cs

<출력 화면>

 

 


14. 사용자에게 10진 정수를 입력받아 오른쪽으로 3비트 이동시킨 결과와 왼쪽으로 3비트 이동시킨 결과를 10진수로 출력하는 프로그램을 작성하시오. 

<소스 코드>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
int main() 
{
    int num;
    int m_l, m_r;
 
    printf("정수 입력: ");
    scanf("%d"&num);
 
    m_l = num >> 3;
    m_r = num << 3;
 
    printf("%d >> 3 = %d\n", num, m_l);
    printf("%d << 3 = %d\n", num, m_r);
 
    return 0;
}
cs

<출력 화면>

 

 


15. 학생의 이름(이름 사이에 띄어쓰기 가능)과 국어, 영어, 수학, 출결 점수를 키보드로 입력받아 네 과목 점수의 평균(소수 1자리)을 구하고 합격 여부(평균이 70점 이상이고 출결 점수가 80점 이상인 경우에만 합격)를 출력하는 프로그램을 작성하시오.

<소스 코드>

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
#include <stdio.h>
int main() 
{
    int kor, eng, math, att;
    char name[10];
    double avg;
 
    printf("학생의 이름: ");
    gets(name);
 
    printf("국어: ");
    scanf("%d"&kor);
    printf("영어: ");
    scanf("%d"&eng);
    printf("수학: ");
    scanf("%d"&math);
    printf("출결: ");
    scanf("%d"&att);
 
    avg = (double)(kor + eng + math + att) / 4;
 
    printf("-------------------------------------\n");
    printf("\t[%s]학생 >> ", name);
 
    if (avg >= 70 && att >= 80)
        printf("합격!\n");
    else
        printf("불합격!\n");
 
    printf("-------------------------------------\n");
    printf("\t네 과목의 평균: %.1lf\n", avg);
    printf("\t출결 점수: %d\n", att);
    printf("-------------------------------------\n");
 
    return 0;
}
cs

 

<출력 화면>

 

 


 

16. 연도를 입력받아 윤년인지 평년인지를 판단하는 프로그램을 작성하시오.

<소스 코드>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
int main()
{
    int year;
 
    printf("년도를 입력하세요.: ");
    scanf("%d"&year);
 
    if ((year%4 == 0&& (year%100 != 0|| (year%400 == 0))
        printf("윤년\n");
    else
        printf("평년\n");
 
    return 0;
}
cs

 

<출력 화면>

 

반응형

댓글

Designed by JB FACTORY