Home > OS >  Function to evaluate exponent
Function to evaluate exponent

Time:01-08

I wrote the following code in c to evaluate exponent of a number without using the math library

#include <stdio.h>

float powr(float,int);

int main(){
    float a;
    int b;
    printf("Enter base and exponent a^b: ");
    scanf("%.2f %d",&a,&b);
    float p=powr(a,b);
    printf("%.2f",p);
    return 0;
}

float powr(float x,int y){
    float r=1;
    for(int i=1;i<=y;i  ){
        r=r*x;
    }
    return(r);
}

but no matter what base and exponent I input, the ouput always comes out to be 1.00. I can't find any mistake in this program and I tried running the powr function algorithm inside main() in a seperate program and it works.

CodePudding user response:

In scanf() it onlys accepts field-width format, but no precision, see here.

You can just input the value, like this:

scanf("%f %d",&a,&b);

Also, you should always check the return value of scanf(). Something like this:

numOfItems = scanf("%.2f %d",&a,&b);
if(numOfItems != 2) // uh-oh
{
    printf("Error while input!");
}

CodePudding user response:

try this instead:

scanf("%f %d",&a,&b);
  •  Tags:  
  • Related