C语言非进位加法,C语言加法进位问题,198+103百位无法上进怎么修改?紧急

个人认为比较清晰简单的程序——

#include

#include

int main(void){

int i,a1,b1,k;

char a[32],b[32];

int af[32]={0},bf[32]={0},c[32],s;

printf("输入加数1\n");

gets(a);

printf("输入加数2\n");

gets(b);

a1=strlen(a);

b1=strlen(b);

k=a1>b1?a1:b1;

for(i=0;i

af[i]=a[a1-i-1]-'0';

}

for(i=0;i

bf[i]=b[b1-i-1]-'0';

}

c[0]=0; // 这些部分跟你原编码几乎一样

for(i=0;i

{ //我首先计算除最高位以外的位数,比如198 + 103 我先计算98 + 03

s = af[i]+bf[i]+c[i]; //个人喜换再加个s值来存储某个位上的数之和,方便后面引用

c[i] = s % 10;

c[i+1] = s / 10;

}

s = af[k-1]+bf[k-1]+c[k-1]; //计算最高位的结果,来决定c[]的位数是不是比a[]b[]多

if(s > 10)

{

c[k-1] = s % 10; //例如,937 + 128 = 1065 得数是四位数

c[k] = 1;

printf("计算结果:");

for(i = k;i>=0;i--) // 因此,i的初始值是k而不是k-1

{

printf("%d",c[i]);

}

}

else{ //如果得数的位数与原本一样

c[k-1] = s;

printf("计算结果:");

for(i= k-1;i>=0;i--) //i的初始值是k-1

{

printf("%d",c[i]);

}

}

return 0;

}

思路比较清晰一点,望采纳,有疑问可以继续追问我

温馨提示:答案为网友推荐,仅供参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值