Codeup问题 B: A+B

问题 B: A+B

时间限制: 1 Sec 内存限制: 32 MB
提交: 1523 解决: 731
[提交][状态][讨论版][命题人:外部导入]
题目描述
给定两个整数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 
#include 

#define max 1000
int main()
{
	char a[max],b[max];
	
	while(scanf("%s %s",a,b)!=EOF){
		int n=strlen(a);
		int m=strlen(b);
		
		int i=0,k=0;
		int res1=0,res2=0;
		for(i=0;i<n;i++){
			if(a[i]>='0'&&a[i]<='9'){
				res1=res1*10+(a[i]-'0');
			}		
		}
		if(a[0]=='-')	res1=-res1;
		k=0;
		for(i=0;i<m;i++){
			if(b[i]>='0'&&b[i]<='9'){
				res2=res2*10+(b[i]-'0');
			}			
		}
		if(b[0]=='-')	res2=-res2;
		printf("%d\n",res1+res2);		
	}

	
	return 0;
 } 

拿到题目的时候第一反应居然是找逗号的位置,想办法去掉逗号,感觉就还是基础太薄弱了,要去掉逗号的方法有很多,然而我选择了最麻烦的一种,找了半天没找着位置规律。数字的ASCII码是连在一起的,直接根据ASCII码比较一下或者直接跟字符比较一下就能把逗号给排除掉了。

做了两天多才把codeup上面第三章前两节做完了,只有这个是参考了一下别人的算法,除此之外锤子剪刀布问题里面,虽然自己想出来了算法,但是实在是过于麻烦,并且存在几乎是两段一样的代码;寻找最短路径里面,算法跟书上差不多其实,但是书上的代码写起来要比我的简洁多了,swap函数和min函数完全可以直接代替很多重复的代码,所以以后一定要记住一些常用的函数,让自己的代码更加简洁一些。
说实话这两天敲代码,自己真的有太多太多的不足了,真的很后悔大一大二没有好好学习,不然也不至于现在一边准备考研,一边从头开始学习c。看着这么厚的书,我其实一直都在怀疑自己能不能坚持下去,尤其是看到别人上百行上千行的代码都能敲的出来,但是自己却还在基础的边缘徘徊着,心里其实很恐慌,都要怀疑是自己是不是不适合学计算机了,有时候甚至是想破罐破摔,可是这样怎么可以呢?一想到明年的这个时候,别人都拿到了通知书,可是我却堕落的不成样子,明明大家都在同一个起点,可是你眼看着其他人一个一个的超过了你,他们越走越高,前途越来越亮,可是你的周围却越来越黑暗,一想到这里我就很害怕。但是现在后悔也没用了,只能一点一点的往前爬不敢停下,一遍又一遍不停地给自己打气。真的是前面的日子过得越舒坦,以后的日子就会越来越艰难。
写了一堆乱七八糟的话,其实本来是想写点总结,结果写着写着就把自己很糟糕的情绪带出来了。

最后附上一句我高中英语试卷上看到的,很喜欢的话吧:
Everything happens for a reason,nothing happens by accident or by things of good luck.

你可能感兴趣的:(Codeup问题 B: A+B)