标题c语言中大数相加(两个正数和gets使用时需要注意的地方
1这是在学校实验室纳新时遇到的面试题,当时看完就懵了,为什么会有这个面试题,然后在网上查找资料发现了这个问题,unsigned long long ,是c语言数据类型中,能表示最大的数是2的32次方减去1,所以,当我们要进行更大的数相加时,就要想另外的办法。把两个很大的数放入两个不同的字符串数组里面,然后再把字符串里面的每个字符,通过acill码,倒过来放进两个数组里面,然后想办法对数组里的每一位相加,然后在对进位进行考虑。这些我自己肯定是想不出来来的,所以在看了视频和别人的代码,理解了,并自己敲了敲试试。也发现了一些小问题,不过还好,通过查找资料得到了解决。感觉通过这个问题收获很大。不过我只是看无符号的数相加。后面会去看看有符合的大数想加,再去看看大数相乘这些问题。2 在写一道洛谷题的时候,写了一个gets(),但是在编译时,这段代码一直被跳过,百思不得其解。然后把之前写得scanf屏蔽了,gets()就能成功输入了,想到了可能之前输入回车换行可能被gets拿走了,当时当时比较烦躁也没深入想,第二天问了学长后,知道了,\n是gets识别的结束标志,所以在前面使用了scanf之后,需要先用getchar取走缓冲区的\n,这样gets就不会被跳过了。
心得 在写代码的时候有时候直接上手敲,写了很多,最后解决了问题还好,写了很多还没解决问题就很苦恼了,在看了更好的方法之后。发现其实不用这样,思考一下,将数学思维运用到敲代码也是很重要的,所以发现,自己敲之前还是应该先多想想啊。