解题思路:
注意事项:
参考代码:
#include<stdio.h>
#include<string.h>
int main()
{
int maxmine= 210;
int a[maxmine],b[maxmine],c[maxmine];
char s1[maxmine], s2[maxmine];
int l1,l2,na,nb,nc,p=0;
scanf("%s%s",s1,s2);
l1 = strlen(s1);
l2 = strlen(s2);
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
na = l1;
for(int i=0;i<l1;i++)a[i] = s1[l1-1-i] - '0';
nb = l2;
for(int i=0;i<l2;i++)b[i] = s2[l2- 1 - i] - '0';
if (na > nb)nc = na;
else
nc= nb;
//计算两数相减
for(int i = 0;i <nc;i++)
{
if((a[i] - b[i] < 0))
{c[i] =( (10 + a[i]) - b[i]);
a[i + 1] --;//多次提交,总是显示答案不完全正确,主要是讲这里的a写成了c,每次进位是对被减数进位。。。
}
else
c[i] = a[i] - b[i];
}
for(int i=nc - 1;i>=0;i--)
{
if(c[i] != 0)//定位第一个不为0的元素下标并开始打印
{p=i;
break;}
}
for(int i=p;i>=0;i--)//定义p=0的方式,包含了两数相减后结果为0的情况
printf("%d",c[i]);
return 0;
}
0.0分
3 人评分
逆反的01串 (C++代码)(依旧推荐switch)浏览:935 |
打水问题 (C语言代码)浏览:1066 |
C语言程序设计教程(第三版)课后习题11.8 (C语言代码)浏览:869 |
C语言程序设计教程(第三版)课后习题7.1 (C语言代码)浏览:611 |
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:609 |
川哥的吩咐 (C语言代码)浏览:609 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:582 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:454 |
简单的a+b (C语言代码)浏览:462 |
小O的数字 (C++代码)浏览:757 |