[Solved] Finding nth power of integer m through C program without pow()


The code for negatives is incorrect. You cannot just blindly negate the result when the base m is negative.
, but . Also, you’re not printing anything if m is zero!

And ints are signed by default so signed int is noise. floats are signed too; but here you could as well use a double for more precision. The return value of main should be int.

Therefore the fixed code would be (add nonstandard clrscrs and getchs to your taste ;):

#include <stdio.h>
#include <stdlib.h>

int main() 
{
    int m, n, i;
    double p = 1.0;
    printf("Enter the number and its power (exponent)\n");
    scanf("%d%d",&m,&n);

    if (n==0) {
        printf("%d raised to %d is: %f",m,n,p);
    }

    else if (n > 0) {
        for(i = 0; i < n; i++)
            p*=m;
        printf("%d raised to %d is: %f",m,n,p); 
    }

    else { // n < 0
        n = -n;
        for (i = 0 ; i < n ; i++)
            p*=m;
        printf("%d raised to %d is: %f", m, -n, 1 / p);
    }
}

2

solved Finding nth power of integer m through C program without pow()