题目1003:A+B
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:14647
解决:6118
-
题目描述:
-
给定两个整数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> #define MAX 15 int convert2Int(char *a){ int i=0; int shengshu=1; int num=0; for(i=strlen(a)-1;i>=0;--i) { if(i==0&&a[0]=='-') {num*=-1;continue;} if(a[i]!=',') {num= num + (a[i]-48)*shengshu; shengshu*=10;} } return num; } int main() { char sq1[MAX],sq2[MAX]; while(scanf("%s %s",sq1,sq2)) { printf("%d\n",convert2Int(sq1)+convert2Int(sq2)); } return 0; }
-
答案:
-
#include <stdio.h> #include <string.h> #define MAX 16 int convert2Int(char *a){ int i; int num=0; if(a[0]!='-') num=a[0]-48; for(i=1;i<strlen(a);++i) { if(a[i]!=',') { num = (num*10 + (a[i]-48)); } } if(a[0]=='-') num*=-1; return num; } int main() { char sq1[MAX],sq2[MAX]; while(scanf("%s %s",sq1,sq2)!=EOF) { printf("%d\n",convert2Int(sq1)+convert2Int(sq2)); } return 0; }
-
输入多组数据,如果没有
while(scanf("%s %s",sq1,sq2)!=EOF)而是
while(scanf("%s %s",sq1,sq2))就会出错
output limit exceed
-