题目描述:
给定两个整数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>
int praseStr(char s[20])
{
int a = 0;
int i;
for (i=0; i<strlen(s); i++)
{
if(s[i] == '-' || s[i] == ',')
continue;
a = a*10 + s[i]-48;
}
if(s[0] == '-')
a = -a;
//printf("%d\n", a);
return a;
}
int main(void)
{
char sa[20], sb[20];
int a, b;
while (scanf("%s%s", sa, sb) != EOF)
{
a = praseStr(sa);
b = praseStr(sb);
printf("%d\n", a+b);
}
return 0;
}
一直狗的提醒:
主要是先变成字符型去检测逗号和负号,一开始不知道那个减48是什么意思,
因为'0'的ASCII值为48,s[i]-'0'把字符型转换成数字型,用哪种都行