c语言 高精度加减法

c语言 高精度加减法,第1张

十分钟 在给你写

加法函数 好久没写程序了 本来以为十分钟能写好 。。。。。(修改:修复了个小bug)

void plus(char *a, char *b, char *c){

int i,index_a,index_b,index_c,carry=0,ten='9'+1,temp_index_c

index_a=strlen(a)-1// index变量指向最末一个数字

index_b=strlen(b)-1

index_c=index_a>index_b? index_a:index_b

temp_index_c=index_c

if(index_a>=index_b){

for(i=index_b+1i>=0i--){

b[i+(index_a-index_b)]=b[i]

}

for(i=0i<index_a-index_bi++)

b[i]='0'

}

else{

for(i=index_a+1i>=0i--){

a[i+(index_b-index_a)]=a[i]

}

for(i=0i<index_b-index_ai++)

a[i]='0'

}

while(index_c>=0){

c[index_c]=a[index_c]+b[index_c]+carry-'0'

if(c[index_c]>=ten){

c[index_c]-=ten-'0'

carry=1

}

else

carry=0

index_c--

}

if(carry==1){

for(i=temp_index_ci>0i--){

c[i+1]=c[i]

}

c[0]=1

}

c[temp_index_c+1]=0

}

#include<stdio.h>

void main() { float x,y,z char c

  scanf("%f%c%f",&x,&c,&y)

  switch ( c ) {

    case '+': z=x+y break

    case '-': z=x-y break

    case '*': z=x*y break

    case '/': z=( y==0 )?(0):(x/y) break

    default: z=0 break

  }

  printf("%f%c%f=%f\n",x,c,y,z)

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11277150.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存