描述 |
输入内容是一个字符串,输出结果为一个字符串。 |
---|---|
知识点 | 字符串,循环,数组 |
运行时间限制 | 10 Sec |
内存限制 | 128 MByte |
输入 |
输入一个字符串,(长度小于100有输入者保证) 因输入的字符串都是标准十进制数,可能存在小数部分,在整数识别时需要舍弃小数部分;在运算过程中出现任何错误返回空字符串; |
输出 |
各个整数单元之和的字符串 |
样例输入 |
654.12 -321 |
样例输出 |
333 |
1 #include <iostream> 2 #include <string> 3 #include <cstdlib> 4 5 #define M 101 6 using namespace std; 7 8 9 int main(){ 10 char m[M], n[M]; 11 long l1, l2, sum; 12 int count_m = 0, count_n =0; 13 scanf("%s %s", m, n); 14 //puts(m); 15 //puts(n); 16 if (strlen(m) == 1 && (*m == '.' || *m == '+' || *m == '-')) 17 return NULL; 18 if (strlen(n) == 1 && (*n == '.' || *n == '+' || *n == '-')) 19 return NULL; 20 for (int i = 1; i < strlen(m); i++){ 21 while (m[i] == '+' || m[i] == '-') 22 return NULL; 23 } 24 for (int i = 1; i < strlen(n); i++){ 25 while (n[i] == '+' || n[i] == '-') 26 return NULL; 27 } 28 for (int i = 0; i < strlen(m); i++){ 29 if (m[i] == '.'){ 30 count_m++; 31 if (count_m == 2) 32 return NULL; 33 } 34 } 35 for (int i = 0; i < strlen(n); i++){ 36 if (n[i] == '.'){ 37 count_n++; 38 if (count_n == 2) 39 return NULL; 40 } 41 } 42 l1 = atol(m); 43 l2 = atol(n); 44 //cout << l1 << " " << l2 << endl; 45 sum = l1 + l2; 46 cout << sum << endl; 47 48 system("pause"); 49 return 0; 50 }