如:add(3,5)返回8
sub(4,1)返回3
muti(2,7)返回14
div(1,3)返回0.3 [在div()函数中程序不可使用实型变量]
帮帮忙啦~~~~~
#include <stdio.h> float add(float a,float b); float sub(float a,float b); float multi(float a,float b); float add(float a,float b){ int i; if(b>0){ for(i=0;i<b;i++) a++; } else if(b==0) return a; else { b=-b; a=sub(a,b); } return(a); } float sub(float a,float b){ int i; if(b>0){ for(i=0;i<b;i++) a--; } else if(b==0) return a; else{ b=-b; a=add(a,b); } return(a); } float multi(float a,float b){ int i; float n=0; if(b>0){ for(i=0;i<b;i++) n=add(n,a); return(n); } else if(b==0){ n=0; return n; } else{ b=-b; for(i=0;i<b;i++) n=add(n,a); n=-n; } return n; } float div(float a,float b){ float i,j; float n; int p,q; if(b>0){ for(i=1;;i++){ n=multi(b,i); if(n>a) break; } i--;//整数部分 for(j=0;j<10;j++){ n=multi(i,10)+j+1; if(multi(b,n)>multi(a,10)) break; }//得到十分位的值 p=i;q=j; printf("a/b=%d.%d\n",p,q); } else if(b==0){ printf("分母是0了!!!\n"); } else{ b=-b; for(i=1;;i++){ n=multi(b,i); if(n>a) break; } i--;//整数部分 for(j=0;j<10;j++){ n=multi(i,10)+j+1; if(multi(b,n)>multi(a,10)) break; }//得到十分位的值 p=i;q=j; printf("a/b=-%d.%d\n",p,q); } return n; }
void main(){ float a,b; float sum1,sum2,sum3,sum4; printf("Input a and b:\n"); scanf("%f%f",&a,&b); sum1=add(a,b); printf("a+b=%f\n",sum1); sum2=sub(a,b); printf("a-b=%f\n",sum2); sum3=multi(a,b); printf("a*b=%f\n",sum3); sum4=div(a,b); // printf("%f\n",sum); } 自己写的,不足之处是不能运算浮点型的数,不过已经扩充道了所有的整数了!