프로그래밍/C언어

C언어콘서트 4장 프로그래밍 답/c언어콘서트 솔루션 4장

이번주에 2015. 3. 10. 13:24
반응형

1. 사용자로부터 초 단위의 시간을 받아서 몇 분 몇 초인지를 계산하는 프로그램을 작성하여보자.

#include <stdio.h>

int main(void){

	int time, minute, second;
	
	printf("시간을 입력하시오(초): ");
	scanf("%d", &time);

	minute = time / 60;
	second = time % 60;
	
	printf("%d초는 %d분 %d초입니다.\n", time, minute, second);

	return 0;
}
2. 사용자로부터 두 개의 정수를 받아 +,-,*,/, % 연산을 하여서 화면에 출력하여 보자.
#include <stdio.h>

int main(void){

	int x, y;

	printf("정수를 입력하시오: ");
	scanf("%d", &x);

	printf("정수를 입력하시오: ");
	scanf("%d", &y);

	printf("%d + %d = %d\n", x, y, x+y);
	printf("%d - %d = %d\n", x, y, x-y);
	printf("%d * %d = %d\n", x, y, x*y);
	printf("%d / %d = %d\n", x, y, x/y);
	printf("%d %% %d = %d\n", x, y, x%y);
	
	return 0;
}

 

3. 이번 장까지 학습한 기법들만을 이용하여 1에서 5까지의 정수에 대하여 제곱과 세제곱값을 화면에 출력하는 프로그램을 작성하여보자.

#include <stdio.h>

int main(void){

	int x = 1;

	printf("정수	제곱값	세제곱값\n");
	printf("%d	%d	%d\n", x, x*x, x*x*x);

	x++;
	printf("%d	%d	%d\n", x, x*x, x*x*x);

	x++;
	printf("%d	%d	%d\n", x, x*x, x*x*x);

	x++;
	printf("%d	%d	%d\n", x, x*x, x*x*x);

	x++;
	printf("%d	%d	%d\n", x, x*x, x*x*x);

	return 0;
}
4. 세 자리로 이루어진 숫자를 입력받은 후에 각각의 자릿수를 분리하고 이 자릿수를 출력하는 프로그램을 작성하여보자.
#include <stdio.h>

int main(void){

	int input;
	int hundred;
	int ten;
	int one;

	printf("정수를 입력하시오: ");
	scanf("%d", &input);

	hundred = (input / 100) % 10;
	ten = (input / 10) % 10;
	one = input % 10;
	

	printf("백의 자리수: %d\n", hundred);
	printf("십의 자리수: %d\n", ten);
	printf("일의 자리수: %d\n", one);


	return 0;
}
5. 조건 연산자를 이용하여 사용자로부터 받은 세 개의 정수 중에서 가장 큰 수를 출력하여보자.
#include <stdio.h>

int main(void){

	int x, y, z;
	int tmp;

	printf("정수를 입력하시오: ");
	scanf("%d" ,&x);
	printf("정수를 입력하시오: ");
	scanf("%d", &y);
	printf("정수를 입력하시오: ");
	scanf("%d", &z);

	tmp = (x > y) ? x:y;
	tmp = (tmp > z) ? tmp : z;

	printf("가장 큰 수는 %d입니다.\n", tmp);
	return 0;
}
6. 다음 수식의 값을 계산하여서 화면에 출력하여보자. x의 값은 사용자로부터 입력받는다.
#include <stdio.h>

int main(void){

	float x;

	printf("정수를 입력하시오: ");
	scanf("%f", &x);

	x = (x*x*x - 20) / (x - 7);

	printf("수식의 값은 %f입니다.\n", x);

	return 0;
}
7. 구의 표면적과 체적을 구하는 프로그램을 작성하여보자. 구의 반지름은 실수로 입력된다. 아래의 공식을 사용하여라.
#include <stdio.h>
#define pi 3.14

int main(void){

	int radius;
	double a;
	double v;

	printf("구의 반지름을 입력하시오: ");
	scanf("%d", &radius);

	a = 4 * pi * (radius * radius);
	v = (4 / 3) * pi * (radius * radius * radius);

	printf("구의 표면적은 %lf이고 체적은 %lf입니다.\n", a, v);

	return 0;
}
8. 그리스 최초의 수학자이자 천문학자인 탈레스는 지팡이 하나로 피라미드의 높이를 재었다고 한다. 탈레스는 지팡이를 똑바로 땅에 세우고 지팡이를 움직여서 지팡이의 그림자와 피라미드의 그림자를 일치시켰다. 삼각형 ABC와 ADE는 닮은 꼴이므로 다음의 수식이 성립한다 
AC: AE = BC : DE 
따라서 AC와 AE, BC를 안다면 DE를 계산할 수 있다. AC와 AE, BC를 입력하여서 DE를 구하는 프로그램을 작성하여보자. 입력되는 수치는 모두 실수로 한다.
#include <stdio.h>

int main(void){

	double AC, AE, BC, DE;

	printf("AC를 입력하시오: ");
	scanf("%lf", &AC);

	printf("AE를 입력하시오: ");
	scanf("%lf", &AE);

	printf("BC를 입력하시오: ");
	scanf("%lf", &BC);

	DE = (AE * BC) / AC;

	printf("DE는 %lf입니다.\n", DE);
	
	return 0;
}
9. 조건연산자 ?만을 이용하여 2차원 공간의 x좌표와 y좌표를 입력받아서 그 좌표가 속하는 사분면을 출력하는 프로그램을 작성하여보자. 다음과 같은 문장도 가능하다는 점을 참고하라. 
(x > 0 && y > 0) ? printf("1사분면\n"): printf("");
#include <stdio.h>

int main(void){

	int x, y;

	printf("x좌료를 입력하시오: ");
	scanf("%d", &x);

	printf("y좌표를 입력하시오: ");
	scanf("%d", &y);

	(x>0 && y>0) ? printf("1사분면\n"): printf("");
	(x<0 && y>0) ? printf("2사분면\n"): printf("");
	(x<0 && y<0) ? printf("3사분면\n"): printf("");
	(x>0 && y<0) ? printf("4사분면\n"): printf("");

	return 0;
}



반응형