본문 바로가기
Solution_/C언어 콘서트

[c언어 콘서트] 4장 (수식과 연산자)

by 낭람_ 2019. 3. 16.
반응형

[4장 1번]


사용자로부터 2개의 정수를 받아서 첫 번째 정수를 두 번째 정수로 나누었을 때의 몫과 나머지를 계산하는 프로그램을 작성하라. 예를 들어서 10과 3이 입력되면 몫으로는 3, 나머지로는 1이 출력되어야 한다.



[풀이]

#include<stdio.h>

int main() {

int a, b;

printf("첫 번째 정수를 입력하시오 : ");
scanf("%d", &a);

printf("두 번째 정수를 입력하시오 : ");
scanf("%d", &b);

printf("몫은 %d이고 나머지는 %d입니다.\n", a / b, a%b);

return 0;
}


[4장 2번]


사용자로부터 하나의 정수를 받아서 정수의 세제곱값을 계산하여 출력하는 프로그램을 작성하라, 예를 들어서 사용자가 3을 입력하였다면 3*3*3=27을 출력하면 된다.


[풀이]

#include<stdio.h>

int main() {

int a;

printf("첫 번째 정수를 입력하시오 : ");
scanf("%d", &a);

printf("세제곱 값은 %d*%d*%d = %d 입니다.\n", a, a, a, a*a*a);

return 0;
}


[4장 3번]


사용자로부터 3개의 정수를 받아서 변수 x, y, z에 저장하고 다음과 같은 수식의 결과를 출력하는 프로그램을 작성하라. 예를 들어서 사용자가 1, 2, 3을 입력하였다면 1*2-3=-1을 출력하면 된다.

[x*y-z]



[풀이]

#include<stdio.h>

int main() {

int a, b, c;

printf("정수를 3개 입력하시오 : ");
scanf("%d %d %d", &a, &b, &c);

printf("%d*%d-%d = %d\n", a, b, c, a*b-c);

return 0;
}


[4장 4번]


세 자리로 이루어진 숫자를 입력받은 후에 각각의 자리수를 분리하고 이 자리수를 출력하는 프로그램을 작성하라.



[풀이]

#include<stdio.h>

int main() {

int a, hundreds, tens, units;

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

hundreds = a / 100;
tens = (a - (hundreds*100)) / 10;
units = a % 10;

printf("백의 자리수 : %d\n", hundreds);
printf("십의 자리수 : %d\n", tens);
printf("일의 자리수 : %d\n", units);

return 0;
}


[4장 5번]


다음 수식의 값을 계산하여서 화면에 출력하라, x의 값은 사용자로부터 입력받는다.

f(x) = (x³-20)/(x-7)



[풀이]

#include<stdio.h>

int main() {

double a;

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

printf("수식의 값은 %lf입니다.\n", ((a*a*a) - 20) / (a - 7));

return 0;
}


[4장 6번]


사용자에게 2개의 실수를 받아서 정수부를 더한 값을 출력하는 프로그램을 작성해보자.



[풀이]

#include<stdio.h>

int main() {

double a, b;

printf("2개의 실수를 입력하시오 : ");
scanf("%lf %lf", &a, &b);

printf("정수부의 합 : %d\n", (int)a + (int)b);

return 0;
}


[4장 7번]


2차원 공간에서 두 점 사이의 거리를 계산하는 프로그램을 작성한다. 두 점은 사용자로부터 정수로 받는다. 제곱근의 계산은 <math.h>에 정의된 sqrt(double x) 함수를 사용한다.

[Hint] 9.0의 제곱근은 다음과 같이 계산할 수 있다.

#include<math.h>

double r = sqrt(9.0);



[풀이]

#include<stdio.h>
#include<math.h>

int main() {

int x1, x2, y1, y2, x, y;

printf("첫번째 점 (x1, y1) : ");
scanf("%d %d", &x1, &y1);

printf("두번째 점 (x2, y2) : ");
scanf("%d %d", &x2, &y2);

x = x2 - x1;
y = y2 - y1;

printf("Distance = %lf\n", sqrt((x*x)+(y*y)));

return 0;
}


반응형

댓글