본문 바로가기

IT프로그래밍

[c언어]c언어 제곱 구하기 코드

 

C언어 제곱 구하기

 

c언어 제곱을 구하는 방식 1 : math.h에서 지원하는 pow를 이용

x

 - 제곱할 숫자

y

 - 지수

 

pow(2, 4) = 2의 4승 = 16

 

소스코드

 
#include <stdio.h>
#include <math.h>
 
int main(void)
{
    float x;
    float y;
 
    float result;
 
    printf("제곱할 숫자를 입력하세요 : ");
    scanf("%f"&x);
 
    printf("몇제곱(지수)을 하시겠습니까? : ");
    scanf("%f"&y);
 
    result = powf(x, y);
    printf("%.2f의 %.2f제곱 = %.2f\n", x, y, result);
}
 
 

 

실행 결과

scanf를 사용하여 변수 x, y에 각각 값을 할당 한 후

result 변수에 powf(x, y)를 대입하여 제곱한 값을 할당

마지막 출력에는 x, y, result를 보여 주었습니다.

 

c언어 제곱을 구하는 방식 2 : 반복문을 사용

 

소스코드

#include <stdio.h>
 
int main(void)
{
    float x;
    float y;
    int count;
 
    float result = 1;
 
    printf("제곱할 숫자를 입력하세요 : ");
    scanf("%f"&x);
 
    printf("몇제곱(지수)을 하시겠습니까? : ");
    scanf("%f"&y);
 
    //for반복문 으로 제곱을 구함
    for(count = 0; count < (int)y; count++)
    {
        result = result * x;
    }
 
    
 
    printf("%.2f의 %.2f제곱 = %.2f\n", x, y, result);
}
 
 

 

실행 결과

 

제곱이라는 것은 결국 해당 숫자를 여러번 반복하여 곱하는 것입니다.

2의 2제곱 = 2 * 2

9의 5제곱 = 9 * 9 * 9 * 9 * 9

결국 처음 곱하려는 숫자 : x

제곱하려는 숫자 : y

를 알면 반복문을 통해 금방 구현할 수 있습니다.

 

result에 1을 준것은 어떠한 숫자를 곱해도 곱해지는 숫자가 되는 값이 1이기 때문이고

반복문에서 y앞에 (int)를 붙인것은 형변환을 한것입니다.(붙이지 않아도 동작에는 이상이 없음) 

 

 

 

 

c언어 제곱을 구하는 방식 3 : 반복문을 함수화하여 사용

 

소스코드

#include <stdio.h>
 
float my_pow(float A, float B)
{
    int count;
    float f_result = 1;
 
    for(count = 0; count < (int)B; count++)
    {
        f_result = f_result * A;
    }
    return f_result;
}
 
int main(void)
{
    float x;
    float y;
 
    float result;
 
    printf("제곱할 숫자를 입력하세요 : ");
    scanf("%f"&x);
 
    printf("몇제곱(지수)을 하시겠습니까? : ");
    scanf("%f"&y);
    
    result = my_pow(x, y);
 
    printf("%.2f의 %.2f제곱 = %.2f\n", x, y, result);
}
 
 
 
 

 

실행 결과

 

2번 반복문을 사용 c언어 제곱을 구하는 방식과 동일하지만

해당 기능을 함수로 만든 후, 필요할 때 호출하여 그 값을 가져와서 표출해준 것입니다.