ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 4.7 C언어_수식과 연산자 실습문제
    C언어, 2022/4장_수식과 연산자 2022. 6. 23. 01:24

    4장 수식과 연산자-실습문제-20180320.pdf
    0.10MB

     

     

    [ 문제 1 ] 0~99999사이의 정수를 입력 받아 각 자리를 분리하여 출력하는 프로그램을 작성하시오. (만=TTHO, 천=THO, 백=HUN, 십=TEN)
    - □는 빈칸 한 칸 띄우기를 의미한다.

     

    key's note : 

    #include<stdio.h>
    
    int main(){
    
    	int num;
    
    	scanf("%d", &num);
    	printf("%dTTHO %dTHO %dHUN %dTEN %d\n", num/10000, (num%10000)/1000, (num%1000)/100, (num%100)/10, num%10);
    	return 0;
    }

     

    [ 문제 2 ] 양의 정수를 입력 받아 시:분:초 형태로 출력하는 프로그램을 작성하시오.
    - 나눗셈 연산자 (/)와 나머지 연산자 (%)를 활용한다.

     

    key's note : 

    #include<stdio.h>
    
    int main(){
    
    	int time;
    
    	scanf("%d", &time);
    	printf("%d:%d:%d\n", time/(60*60), (time%(60*60))/60, time%60);
    	
    	return 0;
    }


    - 응용 : 분과 초는 항상 두 자리 수로 출력하도록 수정하시오.
    ( OJ 문제는 아니지만 각자 완성해보시오 )

     

    [ 문제 3 ] 10000~99999사이의 양의 정수 N을 입력 받은 후, 100의 자리의 값을 출력하는 프로그램을 작성하시오.

     

    key's note : 

    #include<stdio.h>
    
    int main(){
    
    	int num;
    
    	scanf("%d", &num);
    	printf("%d\n", (num%1000)/100);
    	
    	return 0;
    }

     

    [ 문제 4 ] 10000~99999사이의 양의 정수 N을 입력 받은 후, 100의 자리에서 반올림 한 값을 출력하는 프로그램을 작성하시오.

     

    key's note : 

    #include<stdio.h>
    
    int main(){
    
    	int N;
    	scanf("%d", &N);
    
    	double num;
    	num = N / 1000.0;
    	num = num + 0.5;
        
    	int result;
    	result = (int)num;
    	result = result * 1000;
    
    	printf("%d\n", result);
    	
    	return 0;
    }

     

    [ 문제 5 ] 원의 둘레 실수 N을 입력 받아 원의 넓이를 구하고 소수 첫째 자리에서 반올림 한 값을 출력하는 프로그램을 작성하시오.
    - 원주율은 3.14로 계산한다.

     

    key's note : 

    #include<stdio.h>
    
    int main(){
    
    	double N;
    	scanf("%lf", &N);
    	
    	double pi = 3.14;
    	double area;
    	area = pi * (N/(2*pi)) * (N/(2*pi)) + 0.5;
    	
    	int result;
    	result = (int)area;
    
    	printf("%d\n", result);
    	
    	return 0;
    }

     

    [ 문제 6 ] 정수 N을 입력 받아 N이 20~30사이(20과 30포함)의 정수이면 1을 출력하고그렇지 않으면 0을 출력하는 프로그램을 작성하시오.
    - 논리연산과 관계연산의 결과가 참이면 1이 되고 거짓이면 0이 됨을 이용하시오.

     

    key's note : 

    #include<stdio.h>
    
    int main(){
    
    	int N;
    
    	scanf("%d", &N);
    	printf("%d\n", (N>=20 && N<=30));
    	
    	return 0;
    }

     

    [ 문제 7 ] 문자 한 개를 입력 받고 입력 받은 문자가 알파벳인지 아닌지 판단하는 프로그램을 작성하시오.
    - 알파벳이면 1, 알파벳이 아니면 0을 출력하시오.

     

    key's note : 

    #include<stdio.h>
    
    int main(){
    
    	char text;
    
    	scanf("%c", &text);
    	printf("%d\n", ((text>='A') && (text<='Z')) || ((text>='a') && (text<='z')));
    	
    	return 0;
    }

     

    [ 문제 8 ] 양의 정수 N을 입력 받아 짝수면 “even”, 홀수면 “odd”를 출력하는 프로그램을 작성하시오.
    - 조건 연산자 이용

     

    key's note : 

    #include<stdio.h>
    
    int main(){
    
    	int N;
    
    	scanf("%d", &N);
    	N%2 == 0 ? printf("even\n") : printf("odd\n");
    	
    	return 0;
    }

     

    [ 문제 9 ] 서로 다른 두 정수 N, M을 입력 받고, 그 중 더 큰 수를 출력하는 프로그램을 작성하시오.
    - 입력 : 한 줄에 N, M이 순서대로 입력된다.
    - 출력 : N과 M중 더 큰 수를 출력한다.

     

    key's note : 

    #include<stdio.h>
    
    int main(){
    
    	int N;
    	int M;
    
    	scanf("%d %d", &N, &M);
    	printf("%d\n", N > M ? N : M);
    	
    	return 0;
    }

     

     

    [ 문제 10 ] 서로 다른 두 양의 정수 N, M을 입력 받아 큰 수에서 작은 수를 나눈 몫과 나머지를 출력하는 프로그램을 작성하시오.
    - 입력 : 한 줄에 N, M이 순서대로 입력된다.
    - 출력 : 몫을 출력한 후 그 다음 줄에 나머지를 출력한다.

     

     

     

    key's note : 

    #include<stdio.h>
    
    int main(){
    
    	int N;
    	int M;
    	scanf("%d %d", &N, &M);
    	
    	int high;
    	int low;
    	high = N > M ? N : M;
    	low = N < M ? N : M;
    
    	printf("%d\n", high / low);
    	printf("%d\n", high % low);
    	
    	return 0;
    }

     

     

    댓글

Designed by Tistory.