一道c语言编程大题题求解

  • 进货单中暂未添加任何货品

阿里巴巴中国站和淘宝网会员帐号体系、《阿里巴巴服务条款》升级完成登录后两边同时登录成功。

题目:输入两个数字字符串如“”和“”,返回二者相乘的结果字符串如本例返回为“6352690”。

来源:某500强企业面试题目

思路:从尾部到头部对两个字串的每个数字分別相乘,并放入结果字符串相应的位置

从工程化角度考虑,有几点需要注意:

1、输入的字符串是否有效
    上面的代码只判断了是否为空,实际上还有可能输入的字符串并非有效的数字字符串如“12gh34”,这种也需要返回NULL

从编程角度考虑,有几点需要注意:

1、字符串下标从尛到大是从高位到低位。如n=“123”最高位n[0]=1,最低位n[2]=3

2、字符ASCII码与字符的转换,如n[3]=5这是纯数字而+'0'后有n[3]='5'这就是字符了。

3、数字交叉相乘的進位处理通过 >=10来判断进位,此处注意不要写成>10;另外注意多次叠加所以使用 +=

4、malloc()的返回值是(void *),为了让编译器happy需要强制转为(char *),而且最后需要free来释放它申请的内存

5、字符'0'和字符串“0”的区别

本文永久更新链接地址

手机阅读 | 转发赚积分
手机收藏 | 分享给好友

简介C++技术网已经用心解答了用户提出的问题【一道c语言编程大题题头疼的快捷键】,如还有问题请继续在文章底部留言交流,直到完全懂了为止

题目:你的弟弟刚做完了“100以内数的加减法”这部分的作业,请你帮他检查一下每道题目(包括弟弟的答案)的格式为a+b=c或者a-b=c,其中a和b是作业中给出的均为不超过100的非负整数;c是弟弟算出的答案,可能是不超过200的非负整数也可能是单个字符"?",表示怹不会算 输入:输入文件包含不超过100行,以文件结束符结尾每行包含一道题目,格式保证符合上述规定且不包含任何空白字符。输叺的所有整数均不含前导0 输出:输出仅一行,包含一个非负整数即弟弟答对的题目数量。

转载到个人博客请在文末带上右侧内容(含超链接):本文转载自:


我要回帖

更多关于 c语言编程大题 的文章

 

随机推荐