In this Example the function terminates in a strange way, although the values don't change (no base case is reached)
#include<stdio.h>
int power(int a, int b);
int main(){
int a;
int b;
printf(" Enter number: ");
scanf(" %d",&a);
printf(" Enter it's power: ");
scanf( " %d",&b);
printf("\n\n Result: %d",power(a,b));
}
int power(int a, int b){
if( b == 0)
return 1;
if ( a == 0)
return 0;
if ( b == 1)
return a;
else return a*(b,a); //shouldn't it be: "else return a*(a,b-1);" , how does this work!
}