C언어 제곱 출력 - ceon-eo jegob chullyeog

거듭제곱 구하기

1. 숫자 x의 거듭제곱 값인 x^n을 구하는 C 프로그램을 작성하시오.

#include <stdio.h> // 표준 입력 출력을 할 수 있게 도와주는 라이브러리 함수로, printf를 사용할 수 있게 해준다. #include <math.h> // 수식 라이브러리 함수는 pow(제곱), sqrt(제곱근)과 같은 수식 기능을 제공한다. int main(void) { float x; // 실수로 x를 선언 float n; // 실수로 n을 선언 float result; // x^n을 result로 저장할 것이다. printf("제곱할 숫자를 입력하세요 : "); scanf("%f", &x); printf("몇제곱(지수)을 하시겠습니까? : "); scanf("%f", &n); result = powf(x, n); // x^n을 실수형으로 구한다. printf("%.2f의 %.2f제곱은 %.2f입니다.\n", x, n, result); // 소수점 두자리 수까지 출력 return 0; // 현재 실행 중인 함수를 끝낸다. }

제곱할 숫자와 제곱 수를 각각 x와 n으로 입력받아, 결괏값을 만들어서 출력하는 프로그램이다.

pow, powf, powl 차이

double pow(double x, double y); 지수를 계산

float powf(float x, float y); 지수를 계산

long double powl(long double x, long double y); 지수를 계산

두 점 사이의 거리 구하기 

2. 2차원 공간에서 두 점 사이의 거리를 계산하는 C 프로그램을 작성하시오.

#include <stdio.h> // 표준 입력 출력을 할 수 있게 도와주는 라이브러리 함수로, printf를 사용할 수 있게 해준다. #include <math.h> // 수식 라이브러리 함수는 pow(제곱), sqrt(제곱근)과 같은 수식 기능을 제공한다. struct Point2D { int x; int y; }; // 2차원 좌표 x, y를 표현하는 구조체 Point2D를 정의한다. int main(void) { struct Point2D p1; // 점1 struct Point2D p2; // 점2 // 점1 위치 printf("p1의 x좌표를 입력하세요. "); scanf("%d", &p1.x); printf("p1의 y좌표를 입력하세요. "); scanf("%d", &p1.y); // 점2 위치 printf("p2의 x좌표를 입력하세요. "); scanf("%d", &p2.x); printf("p2의 y좌표를 입력하세요. "); scanf("%d", &p2.y); int a = p2.x - p1.x; // 선 a의 길이 int b = p2.y - p1.y; // 선 b의 길이 double c = sqrt((a * a) + (b * b)); // (a * a) + (b * b)의 제곱근을 구함 printf("%f\n", c); // 두 점 사이의 거리를 출력한다. return 0; // 현재 실행 중인 함수를 끝낸다. }

p1, p2의 x좌표, y좌표를 입력받아 두 점 사이의 거리를 구하는 프로그램이다.

p1 - p2를 하든, p2 - p1을 하든 상관이 없다.

왜냐하면 c를 구하는 과정에서 제곱을 할 것이기 때문에 음수가 나오던지 양수가 나오던지

제곱을 하면 양수가 되기 때문이다.

sqrt()를 사용하여 제곱근을 구하면 두 점 사이의 거리를 구할 수 있게 된다.

5의 제곱 출력하기

앞 게시글에서 했던 것처럼, printf() 함수 속에서 pow()함수를 바로 호출하고 출력했다.

제곱을 구하는 함수는 별도로하고, main()함수 안에서 0제곱 ~ 10제곱까지 출력하도록 했다.

x의 값은 고정했지만, 추후 scanf()를 통해서 값을 입력받을 수도 있다.

#include <stdio.h>

int pow (int a, int b);

int main ()

{

int y;

int x = 5;

for(y = 0; y <= 10; y++)

printf("%d ^ %d == %d\n", x, y, pow(x,y));

int pow(int a, int b)

{

int i, pow = 1;

for (i = 0; i < b; i++)

pow *= a; // 주의해야할 부분! a *= a 라고 생각하지 말도록 하자. 

return pow;

#include<stdio.h>

int main(void)
{
int a,b,i;
int result=1;
printf("제곱을구할숫자:");
scanf("%d",&a);
printf("얼마나 제곱할것인가?:");
scanf("%d",&b);

for(i=0;i<b;i++)
{
result *=a;
}
printf("%d 의 %d 제곱은 %d 다",a,b,result);
return 0;
}

해석은 알아서하시고요 !

물러갑니다 !!!!!!!

만약 i 값이 1이라면 <=b 가 가능합니다.

출력사진

C언어나 C++에서 특정 값의 제곱을 구하려면 math 헤더에 있는 pow함수를 사용하시면 됩니다. 해당함수를 사용하면 따로 알고리즘 구현없이도 함수 호출 한번으로 원하는 값을 얻어낼 수 있습니다.

pow함수 사용법

#include <math.h> //C언어 #include <cmath> //C++ //C언어 double pow(double base, double n) //C++ double pow(double base, double n) float pow(float base, float n) long double pow(long double base, long double n)

pow함수를 사용하려면 먼저 pow함수가 포함되어 있는 math헤더를 include해야합니다. C++은 cmath입니다. C언어는 리턴값이 double로 고정되어 있어 double형으로만 값을 받을 수 있고 C++은 dobule, float, long double 이렇게 3가지 값의 반환을 지원합니다. 

base : 제곱할 숫자
n : 승수

pow함수 사용 예제

#include <stdio.h> #include <math.h> //C언어 #include <cmath> //C++ void main() { double result = pow(2, 10); //2의 10승 double result2 = std::pow(2, 10); //C++ 사용시 printf("2의 10승 = %lf\n", result); }

사용법은 pow(대상숫자,지수) 이렇게 사용하시면 됩니다.

Toplist

최신 우편물

태그