#include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h>
int pow_my(int base,int n) { int result=1; while(n-->0) { result *= base; } return result; } float atol_my(char *str) { int integer=0; int i=0; int j=0; int sum=0; int flag=0; float decimal=0.0; int len=strlen(str); printf("len is %d\n",len); for(i=0;i<len;i++,str++) { if(*str=='.') {flag=1;continue;} if(*str=='-') {bMinus=1;continue;} if(*str!='.'&&flag==0) { sum = sum * 10+(*str-'0'); } if(flag==1) { j++; decimal += (float)(*str-'0')/pow_my(10,j); } } if (bMinus) { return -(sum+decimal); }else { return sum+decimal; } }
int main() { char *str=malloc(20*sizeof(char)); printf("Enter The int string Plz\n"); scanf("%s",str); printf("it is %f\n",atol_my(str)); return 0;
}
|
由于c语言中pow函数不能带未知参数,因此自己实现了math.h中的pow()函数
阅读(6944) | 评论(0) | 转发(1) |