Description
给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号","隔开。
现在请计算A+B的结果,并以正常形式输出。
Input
输入包含多组数据数据,每组数据占一行,由两个整数A和B组成(-10^9 < A,B < 10^9)。
Output
请计算A+B的结果,并以正常形式输出,每组数据占一行。
Sample Input
-234,567,890 123,456,789
1,234 2,345,678
Sample Output
-111111101
2346912
#include<iostream>
using namespace std;
int filter(char* p)
{
char str[16];
int i=0;
while(*p!='\0')
{
if(*p!=',') str[i++]=*p;
p++;
}
str[i]='\0';
int n;
sscanf(str,"%d",&n);
return n;
}
int main(void)
{
char a[16],b[16];
while(scanf("%s %s",a,b)!=EOF)
{
std::cout << filter(a)+filter(b) << std::endl;
}
}
当时错把while里面代码写成了这样:
while(*p!='\0')
{
if(*p==',') continue;
str[i++]=*p;
}
错误1是if(*p==',') continue;这样做会导致指针遍历到所指变量的值为逗号时会一直无限循环,因为没有p++操作。
错误2是没有p++递增指针。