题目描述
给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号","隔开。
现在请计算A+B的结果,并以正常形式输出。
输入
输入包含多组数据数据,每组数据占一行,由两个整数A和B组成(-10^9 < A,B < 10^9)。
输出
请计算A+B的结果,并以正常形式输出,每组数据占一行。
样例输入
-234,567,890 123,456,789
1,234 2,345,678
样例输出
-111111101
2346912
#include<stdio.h>
#include<string.h>
/*计算A+B:
* 思路:1.A,B首先是通过字符串形式输入的,然后遍历A,B,将A,B转换为相应的数字,进行加减
* 注意:要想到如果有负数应该怎么处理(正正 正负 负正 负负
*补充细节:
* 1)字符、字符串的细节
* 2)int、double型范围
* 3)强制类型转换
* 4)sscanf
*/
int main()
{
char a[20],b[20];//输入字符数组
char A[10],B[10];//转换后的字符数组
while(scanf("%s%s",&a,&b)!=EOF)
{
int l_a=strlen(a);
int j=0;
for(int i=0; i<l_a; i++) //转换数组a
{
if(a[i]>='0'&&a[i]<='9')
{
A[j++]=a[i];
}
}
A[j]='\0';
// for(int i=0; i<strlen(a); i++) //打印数组a
// {
// printf("%c",a[i]);
// }
// printf("\n");
// for(int i=0; i<strlen(A); i++) //打印数组A
// {
// printf("%c",A[i]);
// }
int l_b=strlen(b);
j=0;
for(int i=0; i<l_b; i++) //转换数组b
{
if(b[i]>='0'&&b[i]<='9')
B[j++]=b[i];
}
B[j]='\0';
int m,n;
sscanf(A,"%d",&m);
sscanf(B,"%d",&n);
if(a[0]=='-')
m=-m;
if(b[0]=='-')
n=-n;
printf("%d\n",m+n);
}
return 0;
}