解题思路:
注意事项:
参考代码:
#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分
4 人评分
人民币问题 (C语言代码)浏览:720 |
点我有惊喜!你懂得!浏览:4145 |
点我有惊喜!你懂得!浏览:2248 |
C语言训练-谁家孩子跑最慢* (C语言代码)浏览:1544 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:627 |
人见人爱A+B (C语言代码)浏览:664 |
字符串的输入输出处理 (C语言代码)浏览:1020 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:689 |
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:651 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:590 |