﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-beta</title><link>http://www.cppblog.com/beta/</link><description>never afraid of bugs.</description><language>zh-cn</language><lastBuildDate>Tue, 07 Apr 2026 22:55:09 GMT</lastBuildDate><pubDate>Tue, 07 Apr 2026 22:55:09 GMT</pubDate><ttl>60</ttl><item><title>POJ Problem 1002 Solved!</title><link>http://www.cppblog.com/beta/archive/2010/05/08/114854.html</link><dc:creator>beta</dc:creator><author>beta</author><pubDate>Sat, 08 May 2010 08:37:00 GMT</pubDate><guid>http://www.cppblog.com/beta/archive/2010/05/08/114854.html</guid><wfw:comment>http://www.cppblog.com/beta/comments/114854.html</wfw:comment><comments>http://www.cppblog.com/beta/archive/2010/05/08/114854.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/beta/comments/commentRss/114854.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/beta/services/trackbacks/114854.html</trackback:ping><description><![CDATA[<p>本文使用 Google Docs 编辑，以网页形式发布。最新版本请看以下链接：<br></p><a href="View?id=df4r7psc_973ccmbxncn" id="nq_i" title="http://docs.google.com/View?id=df4r7psc_973ccmbxncn">http://docs.google.com/View?id=df4r7psc_973ccmbxncn</a><h1>POJ Problem 1002 Solved!<span style="font-weight:normal">&nbsp;</span></h1>　　这个题目的解题思路与上次写的英文单词自动补全、纠错很相似。先将电话号码用有根树的形式保存，每个节点表示一个号码，从根到叶节点就是一个完整的号码。记录每个叶子节点的出现在次数，若大于2，就表示有重复的号码了。<div>　　POJ平台对输出的要求十分严格，一点差别都不能有。比如今天遇到的是多输出了一个 '\0'，这是个不可见字符，测试根本看不出问题。</div><br><div>　　因为有根树的代码大量借鉴了之前写的，所以这次基本上没有遇到什么大问题，只是有些细节上，出现了些低级错误（如 == 写成了 =，函数参数列表中 , 写成了 ;）。</div><br><div>　　下面是代码：<br><br><font face="monospace"> <font color="#a52a2a">&nbsp;&nbsp;1 </font><font color="#a020f0">#include </font><font color="#ff00ff">&lt;string.h&gt;</font><br><font color="#a52a2a">&nbsp;&nbsp;2 </font><font color="#a020f0">#include </font><font color="#ff00ff">&lt;stdlib.h&gt;</font><br><font color="#a52a2a">&nbsp;&nbsp;3 </font><font color="#a020f0">#include </font><font color="#ff00ff">&lt;stdio.h&gt;</font><br><font color="#a52a2a">&nbsp;&nbsp;4 </font><font color="#a020f0">#include </font><font color="#ff00ff">&lt;ctype.h&gt;</font><br><font color="#a52a2a">&nbsp;&nbsp;5 </font><br><font color="#a52a2a">&nbsp;&nbsp;6 </font><font color="#a020f0">#define NUM_OF_CHILD </font><font color="#ff00ff">10</font><br><font color="#a52a2a">&nbsp;&nbsp;7 </font><br><font color="#a52a2a">&nbsp;&nbsp;8 </font><font color="#2e8b57"><strong>typedef</strong></font>&nbsp;<font color="#2e8b57"><strong>struct</strong></font>&nbsp;NumberNode<br><font color="#a52a2a">&nbsp;&nbsp;9 </font>{<br><font color="#a52a2a">&nbsp;10 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#2e8b57"><strong>char</strong></font>&nbsp;number;<br><font color="#a52a2a">&nbsp;11 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#2e8b57"><strong>struct</strong></font>&nbsp;NumberNode *child[NUM_OF_CHILD];&nbsp;&nbsp; <font color="#0000ff">// 0 ~ 9</font><br><font color="#a52a2a">&nbsp;12 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#2e8b57"><strong>struct</strong></font>&nbsp;NumberNode *parent;<br><font color="#a52a2a">&nbsp;13 </font><br><font color="#a52a2a">&nbsp;14 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#2e8b57"><strong>long</strong></font>&nbsp;counter;&nbsp;&nbsp; <font color="#0000ff">// number of occurence</font><br><font color="#a52a2a">&nbsp;15 </font>} NUMBER;<br><font color="#a52a2a">&nbsp;16 </font><br><font color="#a52a2a">&nbsp;17 </font><font color="#0000ff">// function decleration ===================================</font><br><font color="#a52a2a">&nbsp;18 </font>NUMBER *build_tree ();<br><font color="#a52a2a">&nbsp;19 </font><font color="#0000ff">// for build_tree() -------------------------------</font><br><font color="#a52a2a">&nbsp;20 </font><font color="#2e8b57"><strong>void</strong></font>&nbsp;parse_input (<font color="#2e8b57"><strong>char</strong></font>&nbsp;input[], <font color="#2e8b57"><strong>char</strong></font>&nbsp;entry[]);<br><font color="#a52a2a">&nbsp;21 </font>NUMBER *init_root ();<br><font color="#a52a2a">&nbsp;22 </font>NUMBER *add_entry (NUMBER *root, <font color="#2e8b57"><strong>char</strong></font>&nbsp;*entry);<br><font color="#a52a2a">&nbsp;23 </font>NUMBER *add_node (NUMBER *cur_node, <font color="#2e8b57"><strong>char</strong></font>&nbsp;c);<br><font color="#a52a2a">&nbsp;24 </font>NUMBER *has_child (NUMBER *cur_node, <font color="#2e8b57"><strong>char</strong></font>&nbsp;c);<br><font color="#a52a2a">&nbsp;25 </font><br><font color="#a52a2a">&nbsp;26 </font><font color="#2e8b57"><strong>void</strong></font>&nbsp;leaf_walk (NUMBER *root);<br><font color="#a52a2a">&nbsp;27 </font><font color="#0000ff">// for leaf_walk()</font><br><font color="#a52a2a">&nbsp;28 </font><font color="#2e8b57"><strong>int</strong></font>&nbsp;has_no_child (NUMBER *cur_node);<br><font color="#a52a2a">&nbsp;29 </font><font color="#2e8b57"><strong>void</strong></font>&nbsp;print_entry (NUMBER *leaf);<br><font color="#a52a2a">&nbsp;30 </font><br><font color="#a52a2a">&nbsp;31 </font><font color="#0000ff">// @func: build_tree</font><br><font color="#a52a2a">&nbsp;32 </font><font color="#0000ff">// 从输入字符串建立有根树</font><br><font color="#a52a2a">&nbsp;33 </font><font color="#0000ff">// @return 返回有根树的根节点</font><br><font color="#a52a2a">&nbsp;34 </font>NUMBER *build_tree ()<br><font color="#a52a2a">&nbsp;35 </font>{<br><font color="#a52a2a">&nbsp;36 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#2e8b57"><strong>int</strong></font>&nbsp;num_of_input;<br><font color="#a52a2a">&nbsp;37 </font>&nbsp;&nbsp;&nbsp;&nbsp;scanf (<font color="#ff00ff">"</font><font color="#6a5acd">%d</font><font color="#ff00ff">"</font>, &amp;num_of_input);<br><font color="#a52a2a">&nbsp;38 </font><br><font color="#a52a2a">&nbsp;39 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#2e8b57"><strong>char</strong></font>&nbsp;input[<font color="#ff00ff">100</font>];<br><font color="#a52a2a">&nbsp;40 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#2e8b57"><strong>char</strong></font>&nbsp;entry[<font color="#ff00ff">8</font>];<br><font color="#a52a2a">&nbsp;41 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">// </font><font><span style="background-color:#ffff00"><font color="#0000ff">TODO</font></span></font><font color="#0000ff">: build root</font><br><font color="#a52a2a">&nbsp;42 </font>&nbsp;&nbsp;&nbsp;&nbsp;NUMBER *root = init_root();<br><font color="#a52a2a">&nbsp;43 </font><br><font color="#a52a2a">&nbsp;44 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#2e8b57"><strong>int</strong></font>&nbsp;i;<br><font color="#a52a2a">&nbsp;45 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#a52a2a"><strong>for</strong></font>&nbsp;(i=<font color="#ff00ff">0</font>; i&lt;num_of_input; ++i)<br><font color="#a52a2a">&nbsp;46 </font>&nbsp;&nbsp;&nbsp;&nbsp;{<br><font color="#a52a2a">&nbsp;47 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scanf (<font color="#ff00ff">"</font><font color="#6a5acd">%s</font><font color="#ff00ff">"</font>, input);<br><font color="#a52a2a">&nbsp;48 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">// procee *input* to number format</font><br><font color="#a52a2a">&nbsp;49 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parse_input (input, entry);<br><font color="#a52a2a">&nbsp;50 </font><br><font color="#a52a2a">&nbsp;51 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">// </font><font><span style="background-color:#ffff00"><font color="#0000ff">TODO</font></span></font><font color="#0000ff">: add this entry to root</font><br><font color="#a52a2a">&nbsp;52 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;add_entry (root, entry);<br><font color="#a52a2a">&nbsp;53 </font>&nbsp;&nbsp;&nbsp;&nbsp;}<br><font color="#a52a2a">&nbsp;54 </font><br><font color="#a52a2a">&nbsp;55 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#a52a2a"><strong>return</strong></font>&nbsp;root;<br><font color="#a52a2a">&nbsp;56 </font>}<br><font color="#a52a2a">&nbsp;57 </font><br><font color="#a52a2a">&nbsp;58 </font><font color="#0000ff">// @func init_root</font><br><font color="#a52a2a">&nbsp;59 </font><font color="#0000ff">// 申请根节点内存，初始化根节点</font><br><font color="#a52a2a">&nbsp;60 </font><font color="#0000ff">// @return 返回指向根节点的指针</font><br><font color="#a52a2a">&nbsp;61 </font>NUMBER *init_root ()<br><font color="#a52a2a">&nbsp;62 </font>{<br><font color="#a52a2a">&nbsp;63 </font>&nbsp;&nbsp;&nbsp;&nbsp;NUMBER *root = (NUMBER *) malloc (<font color="#a52a2a"><strong>sizeof</strong></font>&nbsp;(NUMBER));<br><font color="#a52a2a">&nbsp;64 </font>&nbsp;&nbsp;&nbsp;&nbsp;root-&gt;number = <font color="#6a5acd">'\0'</font>;<br><font color="#a52a2a">&nbsp;65 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#2e8b57"><strong>int</strong></font>&nbsp;i;<br><font color="#a52a2a">&nbsp;66 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#a52a2a"><strong>for</strong></font>&nbsp;(i=<font color="#ff00ff">0</font>; i&lt;NUM_OF_CHILD; ++i)<br><font color="#a52a2a">&nbsp;67 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;root-&gt;child[i] = <font color="#ff00ff">NULL</font>;<br><font color="#a52a2a">&nbsp;68 </font>&nbsp;&nbsp;&nbsp;&nbsp;root-&gt;parent = <font color="#ff00ff">NULL</font>;<br><font color="#a52a2a">&nbsp;69 </font>&nbsp;&nbsp;&nbsp;&nbsp;root-&gt;counter = <font color="#ff00ff">0</font>;<br><font color="#a52a2a">&nbsp;70 </font><br><font color="#a52a2a">&nbsp;71 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#a52a2a"><strong>return</strong></font>&nbsp;root;<br><font color="#a52a2a">&nbsp;72 </font>}<br><font color="#a52a2a">&nbsp;73 </font><br><font color="#a52a2a">&nbsp;74 </font><font color="#0000ff">// @func parse_input</font><br><font color="#a52a2a">&nbsp;75 </font><font color="#0000ff">// parse string *input* to 7 digits and then store them in *entry*</font><br><font color="#a52a2a">&nbsp;76 </font><font color="#0000ff">// @param input: unformat string</font><br><font color="#a52a2a">&nbsp;77 </font><font color="#0000ff">// @param entry: storage for the 7 digits</font><br><font color="#a52a2a">&nbsp;78 </font><font color="#2e8b57"><strong>const</strong></font>&nbsp;<font color="#2e8b57"><strong>char</strong></font>&nbsp;A2iTable[<font color="#ff00ff">26</font>] = <br><font color="#a52a2a">&nbsp;79 </font>&nbsp;&nbsp;&nbsp;&nbsp;{<font color="#ff00ff">'2'</font>,<font color="#ff00ff">'2'</font>,<font color="#ff00ff">'2'</font>, <font color="#ff00ff">'3'</font>,<font color="#ff00ff">'3'</font>,<font color="#ff00ff">'3'</font>, <font color="#ff00ff">'4'</font>,<font color="#ff00ff">'4'</font>,<font color="#ff00ff">'4'</font>, <font color="#ff00ff">'5'</font>,<font color="#ff00ff">'5'</font>,<font color="#ff00ff">'5'</font>, <font color="#ff00ff">'6'</font>,<font color="#ff00ff">'6'</font>,<font color="#ff00ff">'6'</font>,<br><font color="#a52a2a">&nbsp;80 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ff00ff">'7'</font>,<font color="#ff00ff">'7'</font>,<font color="#ff00ff">'7'</font>,<font color="#ff00ff">'7'</font>, <font color="#ff00ff">'8'</font>,<font color="#ff00ff">'8'</font>,<font color="#ff00ff">'8'</font>, <font color="#ff00ff">'9'</font>,<font color="#ff00ff">'9'</font>,<font color="#ff00ff">'9'</font>,<font color="#ff00ff">'9'</font>};<br><font color="#a52a2a">&nbsp;81 </font><font color="#2e8b57"><strong>void</strong></font>&nbsp;parse_input (<font color="#2e8b57"><strong>char</strong></font>&nbsp;input[], <font color="#2e8b57"><strong>char</strong></font>&nbsp;entry[])<br><font color="#a52a2a">&nbsp;82 </font>{<br><font color="#a52a2a">&nbsp;83 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#2e8b57"><strong>size_t</strong></font>&nbsp;length = strlen (input);<br><font color="#a52a2a">&nbsp;84 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#2e8b57"><strong>int</strong></font>&nbsp;i, j, index;<br><font color="#a52a2a">&nbsp;85 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#a52a2a"><strong>for</strong></font>&nbsp;(i=<font color="#ff00ff">0</font>, j=<font color="#ff00ff">0</font>; i&lt;length; ++i)<br><font color="#a52a2a">&nbsp;86 </font>&nbsp;&nbsp;&nbsp;&nbsp;{<br><font color="#a52a2a">&nbsp;87 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#a52a2a"><strong>if</strong></font>&nbsp;(isdigit(input[i]))<br><font color="#a52a2a">&nbsp;88 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br><font color="#a52a2a">&nbsp;89 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;entry[j++] = input[i];<br><font color="#a52a2a">&nbsp;90 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><font color="#a52a2a">&nbsp;91 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#a52a2a"><strong>else</strong></font>&nbsp;<font color="#a52a2a"><strong>if</strong></font>&nbsp;(input[i] == <font color="#ff00ff">'-'</font>)<br><font color="#a52a2a">&nbsp;92 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#a52a2a"><strong>continue</strong></font>;<br><font color="#a52a2a">&nbsp;93 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#a52a2a"><strong>else</strong></font>&nbsp;<font color="#a52a2a"><strong>if</strong></font>&nbsp;(isupper(input[i]) &amp;&amp; input[i]!=<font color="#ff00ff">'Q'</font>&nbsp;&amp;&amp; input[i]!=<font color="#ff00ff">'Z'</font>)<br><font color="#a52a2a">&nbsp;94 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br><font color="#a52a2a">&nbsp;95 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;index = (<font color="#2e8b57"><strong>int</strong></font>)input[i] % (<font color="#2e8b57"><strong>int</strong></font>)(<font color="#ff00ff">'A'</font>);<br><font color="#a52a2a">&nbsp;96 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;entry[j++] = A2iTable[index];<br><font color="#a52a2a">&nbsp;97 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><font color="#a52a2a">&nbsp;98 </font>&nbsp;&nbsp;&nbsp;&nbsp;}<br><font color="#a52a2a">&nbsp;99 </font>&nbsp;&nbsp;&nbsp;&nbsp;entry[j] = <font color="#6a5acd">'\0'</font>;<br><font color="#a52a2a">100 </font><br><font color="#a52a2a">101 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">// debug: exam entry</font><br><font color="#a52a2a">102 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">// printf ("%s\n", entry);</font><br><font color="#a52a2a">103 </font>&nbsp;&nbsp;&nbsp;&nbsp;<br><font color="#a52a2a">104 </font>}<br><font color="#a52a2a">105 </font><br><font color="#a52a2a">106 </font><br><font color="#a52a2a">107 </font><font color="#0000ff">// @func add_entry</font><br><font color="#a52a2a">108 </font><font color="#0000ff">// 往 root 加电话号码条目 entry</font><br><font color="#a52a2a">109 </font><font color="#0000ff">// @para root 树的根节点</font><br><font color="#a52a2a">110 </font><font color="#0000ff">// @para entry 待加入单词</font><br><font color="#a52a2a">111 </font><font color="#0000ff">// @return 返回树的根节点</font><br><font color="#a52a2a">112 </font>NUMBER *add_entry (NUMBER *root, <font color="#2e8b57"><strong>char</strong></font>&nbsp;*entry)<br><font color="#a52a2a">113 </font>{<br><font color="#a52a2a">114 </font>&nbsp;&nbsp;&nbsp;&nbsp;NUMBER *cur_node = root;<br><font color="#a52a2a">115 </font><br><font color="#a52a2a">116 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#2e8b57"><strong>int</strong></font>&nbsp;i;<br><font color="#a52a2a">117 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#a52a2a"><strong>for</strong></font>&nbsp;(i=<font color="#ff00ff">0</font>; i&lt;strlen(entry); ++i)<br><font color="#a52a2a">118 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cur_node = add_node (cur_node, *(entry+i));<br><font color="#a52a2a">119 </font><br><font color="#a52a2a">120 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#a52a2a"><strong>return</strong></font>&nbsp;root;<br><font color="#a52a2a">121 </font>}<br><font color="#a52a2a">122 </font><br><font color="#a52a2a">123 </font><font color="#0000ff">// @func add_node</font><br><font color="#a52a2a">124 </font><font color="#0000ff">// 往当前节点 cur_node 添加 c 节点</font><br><font color="#a52a2a">125 </font><font color="#0000ff">// @para cur_node 当前节点</font><br><font color="#a52a2a">126 </font><font color="#0000ff">// @para c 要添加的节点字母</font><br><font color="#a52a2a">127 </font><font color="#0000ff">// @return 返回新节点</font><br><font color="#a52a2a">128 </font>NUMBER *add_node (NUMBER *cur_node, <font color="#2e8b57"><strong>char</strong></font>&nbsp;c)<br><font color="#a52a2a">129 </font>{<br><font color="#a52a2a">130 </font>&nbsp;&nbsp;&nbsp;&nbsp;NUMBER *child = has_child (cur_node, c);<br><font color="#a52a2a">131 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">// if *c* already exist</font><br><font color="#a52a2a">132 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#a52a2a"><strong>if</strong></font>&nbsp;(child)<br><font color="#a52a2a">133 </font>&nbsp;&nbsp;&nbsp;&nbsp;{<br><font color="#a52a2a">134 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;++ child-&gt;counter;<br><font color="#a52a2a">135 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#a52a2a"><strong>return</strong></font>&nbsp;child;<br><font color="#a52a2a">136 </font>&nbsp;&nbsp;&nbsp;&nbsp;}<br><font color="#a52a2a">137 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">// otherwise, create a new node</font><br><font color="#a52a2a">138 </font>&nbsp;&nbsp;&nbsp;&nbsp;child = (NUMBER *) malloc (<font color="#a52a2a"><strong>sizeof</strong></font>&nbsp;(NUMBER));<br><font color="#a52a2a">139 </font>&nbsp;&nbsp;&nbsp;&nbsp;child-&gt;number = c;<br><font color="#a52a2a">140 </font>&nbsp;&nbsp;&nbsp;&nbsp;child-&gt;counter = <font color="#ff00ff">1</font>;<br><font color="#a52a2a">141 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff">// maintain the tree</font><br><font color="#a52a2a">142 </font>&nbsp;&nbsp;&nbsp;&nbsp;cur_node-&gt;child[c-<font color="#ff00ff">'0'</font>] = child;<br><font color="#a52a2a">143 </font>&nbsp;&nbsp;&nbsp;&nbsp;child-&gt;parent = cur_node;<br><font color="#a52a2a">144 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#2e8b57"><strong>int</strong></font>&nbsp;i;<br><font color="#a52a2a">145 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#a52a2a"><strong>for</strong></font>&nbsp;(i=<font color="#ff00ff">0</font>; i&lt;NUM_OF_CHILD; ++i)<br><font color="#a52a2a">146 </font>&nbsp;&nbsp;&nbsp;&nbsp;{<br><font color="#a52a2a">147 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;child-&gt;child[i] = <font color="#ff00ff">NULL</font>;<br><font color="#a52a2a">148 </font>&nbsp;&nbsp;&nbsp;&nbsp;}<br><font color="#a52a2a">149 </font><br><font color="#a52a2a">150 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#a52a2a"><strong>return</strong></font>&nbsp;child;<br><font color="#a52a2a">151 </font>}<br><font color="#a52a2a">152 </font><br><font color="#a52a2a">153 </font><font color="#0000ff">// @func has_child</font><br><font color="#a52a2a">154 </font><font color="#0000ff">// 判断节点 cur_node 是否拥有一级子节点 c</font><br><font color="#a52a2a">155 </font><font color="#0000ff">// @para cur_node </font><br><font color="#a52a2a">156 </font><font color="#0000ff">// @para c 字节点字母</font><br><font color="#a52a2a">157 </font><font color="#0000ff">// @return 如果有则返回该子节点，无则返回 NULL</font><br><font color="#a52a2a">158 </font>NUMBER *has_child (NUMBER *cur_node, <font color="#2e8b57"><strong>char</strong></font>&nbsp;c)<br><font color="#a52a2a">159 </font>{<br><font color="#a52a2a">160 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#a52a2a"><strong>if</strong></font>&nbsp;(!cur_node)<br><font color="#a52a2a">161 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#a52a2a"><strong>return</strong></font>&nbsp;<font color="#ff00ff">NULL</font>;<br><font color="#a52a2a">162 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#a52a2a"><strong>return</strong></font>&nbsp;cur_node-&gt;child[c-<font color="#ff00ff">'0'</font>];<br><font color="#a52a2a">163 </font>}<br><font color="#a52a2a">164 </font><br><font color="#a52a2a">165 </font><font color="#2e8b57"><strong>int</strong></font>&nbsp;has_no_child (NUMBER *cur_node)<br><font color="#a52a2a">166 </font>{<br><font color="#a52a2a">167 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#2e8b57"><strong>int</strong></font>&nbsp;i;<br><font color="#a52a2a">168 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#a52a2a"><strong>for</strong></font>&nbsp;(i=<font color="#ff00ff">0</font>; i&lt;NUM_OF_CHILD; ++i)<br><font color="#a52a2a">169 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#a52a2a"><strong>if</strong></font>&nbsp;(cur_node-&gt;child[i])<br><font color="#a52a2a">170 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#a52a2a"><strong>return</strong></font>&nbsp;<font color="#ff00ff">0</font>;<br><font color="#a52a2a">171 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#a52a2a"><strong>return</strong></font>&nbsp;<font color="#ff00ff">1</font>;<br><font color="#a52a2a">172 </font>}<br><font color="#a52a2a">173 </font><br><font color="#a52a2a">174 </font><font color="#2e8b57"><strong>int</strong></font>&nbsp;flag_no_duplicte = <font color="#ff00ff">1</font>;<br><font color="#a52a2a">175 </font><font color="#2e8b57"><strong>int</strong></font>&nbsp;hyphen_counter = <font color="#ff00ff">0</font>;<br><font color="#a52a2a">176 </font><font color="#2e8b57"><strong>void</strong></font>&nbsp;print_entry (NUMBER *leaf)<br><font color="#a52a2a">177 </font>{<br><font color="#a52a2a">178 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#a52a2a"><strong>if</strong></font>&nbsp;(leaf-&gt;parent &amp;&amp; leaf-&gt;parent-&gt;parent)<span class="writely-comment writely-comment-orange Apple-style-span" id="writely-comment-id-df4r7psc">&nbsp;除去最顶节点 -邱国钦 10-5-8 下午2:41</span>&nbsp;<br><font color="#a52a2a">179 </font>&nbsp;&nbsp;&nbsp;&nbsp;{<br><font color="#a52a2a">180 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print_entry (leaf-&gt;parent);<br><font color="#a52a2a">181 </font>&nbsp;&nbsp;&nbsp;&nbsp;}<br><font color="#a52a2a">182 </font>&nbsp;&nbsp;&nbsp;&nbsp;printf (<font color="#ff00ff">"</font><font color="#6a5acd">%c</font><font color="#ff00ff">"</font>, leaf-&gt;number);<br><font color="#a52a2a">183 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#a52a2a"><strong>if</strong></font>&nbsp;(<font color="#ff00ff">2</font>&nbsp;== hyphen_counter++)<br><font color="#a52a2a">184 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf (<font color="#ff00ff">"-"</font>);<br><font color="#a52a2a">185 </font>}<br><font color="#a52a2a">186 </font><br><font color="#a52a2a">187 </font><font color="#2e8b57"><strong>void</strong></font>&nbsp;leaf_walk (NUMBER *root)<br><font color="#a52a2a">188 </font>{<br><font color="#a52a2a">189 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#a52a2a"><strong>if</strong></font>&nbsp;(!root)<br><font color="#a52a2a">190 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#a52a2a"><strong>return</strong></font>;<br><font color="#a52a2a">191 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#a52a2a"><strong>if</strong></font>&nbsp;(has_no_child (root) &amp;&amp; (root-&gt;counter &gt; <font color="#ff00ff">1</font>))<br><font color="#a52a2a">192 </font>&nbsp;&nbsp;&nbsp;&nbsp;{<br><font color="#a52a2a">193 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print_entry (root);<br><font color="#a52a2a">194 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf (<font color="#ff00ff">" </font><font color="#6a5acd">%ld</font><font color="#6a5acd">\n</font><font color="#ff00ff">"</font>, root-&gt;counter);<br><font color="#a52a2a">195 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hyphen_counter = <font color="#ff00ff">0</font>;<br><font color="#a52a2a">196 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flag_no_duplicte = <font color="#ff00ff">0</font>;<br><font color="#a52a2a">197 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="#a52a2a"><strong>return</strong></font>;<br><font color="#a52a2a">198 </font>&nbsp;&nbsp;&nbsp;&nbsp;}<br><font color="#a52a2a">199 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#2e8b57"><strong>int</strong></font>&nbsp;i;<br><font color="#a52a2a">200 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#a52a2a"><strong>for</strong></font>&nbsp;(i=<font color="#ff00ff">0</font>; i&lt;NUM_OF_CHILD; ++i)<br><font color="#a52a2a">201 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;leaf_walk (root-&gt;child[i]);<br><font color="#a52a2a">202 </font>}<br><font color="#a52a2a">203 </font><br><font color="#a52a2a">204 </font><font color="#2e8b57"><strong>int</strong></font>&nbsp;main (<font color="#2e8b57"><strong>int</strong></font>&nbsp;argc, <font color="#2e8b57"><strong>char</strong></font>&nbsp;**argv)<br><font color="#a52a2a">205 </font>{<br><font color="#a52a2a">206 </font>&nbsp;&nbsp;&nbsp;&nbsp;NUMBER *root = build_tree ();<br><font color="#a52a2a">207 </font><br><font color="#a52a2a">208 </font>&nbsp;&nbsp;&nbsp;&nbsp;leaf_walk(root);<br><font color="#a52a2a">209 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#a52a2a"><strong>if</strong></font>&nbsp;(flag_no_duplicte)<br><font color="#a52a2a">210 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf (<font color="#ff00ff">"No duplicates.</font><font color="#6a5acd">\n</font><font color="#ff00ff">"</font>);<br><font color="#a52a2a">211 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#a52a2a"><strong>return</strong></font>&nbsp;<font color="#ff00ff">0</font>;<br><font color="#a52a2a">212 </font>}<br></font><br></div><br><img src ="http://www.cppblog.com/beta/aggbug/114854.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/beta/" target="_blank">beta</a> 2010-05-08 16:37 <a href="http://www.cppblog.com/beta/archive/2010/05/08/114854.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>POJ Problem 1001 Solved!</title><link>http://www.cppblog.com/beta/archive/2010/05/07/114793.html</link><dc:creator>beta</dc:creator><author>beta</author><pubDate>Fri, 07 May 2010 14:32:00 GMT</pubDate><guid>http://www.cppblog.com/beta/archive/2010/05/07/114793.html</guid><wfw:comment>http://www.cppblog.com/beta/comments/114793.html</wfw:comment><comments>http://www.cppblog.com/beta/archive/2010/05/07/114793.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/beta/comments/commentRss/114793.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/beta/services/trackbacks/114793.html</trackback:ping><description><![CDATA[<p>本文使用 Google Docs 编辑，以网页形式发布。最新版本请看以下链接：</p><a href="View?id=df4r7psc_971cf4bpgc4" id="q3ow" title="http://docs.google.com/View?id=df4r7psc_971cf4bpgc4">http://docs.google.com/View?id=df4r7psc_971cf4bpgc4</a><h1>POJ Problem 1001 Solved!</h1><div>　　今晚终于让我的 <a href="http://acm.pku.edu.cn/JudgeOnline/problem?id=1001" id="rppy" title="problem 1001">problem 1001</a> 代码得到 POJ *Accepted* 了。今天早上就写基本写好了，在本机上测试都没有发现问题，但提交时总是 *Wrong Anser*!</div><br><div>　　POJ平台有个讨论页面，而 Problem 1001 的讨论最多的是一组测试数据，下午的时候没有多注意，只是找一些试试。晚上把程序改了一下，先读入所有的输入，再统一输出。而且用了所有的测试数据。这时候问题就出现了：</div><div>　　首先是在大数乘法函数中出现了段错误，检查一下，发现是分配给结果的数组大小了；修正了这个错误后，发现除了第一组，其他数的结果明显是错误的，一看，突然发现有一个相当低级的错误，分配给输入字符串的空间小了一个字节！</div><br><div>　　解决了这两个问题，提交，Accepted！前辈的话要多注意听！</div><br><div>　　下面是代码：</div><font class="Apple-style-span" face="monospace"> <font class="Apple-style-span" color="#a52a2a">&nbsp;&nbsp;1 </font><font class="Apple-style-span" color="#a020f0">#include </font><font class="Apple-style-span" color="#ff00ff">&lt;stdio.h&gt;</font><br><font class="Apple-style-span" color="#a52a2a">&nbsp;&nbsp;2 </font><font class="Apple-style-span" color="#a020f0">#include </font><font class="Apple-style-span" color="#ff00ff">&lt;string.h&gt;</font><br><font class="Apple-style-span" color="#a52a2a">&nbsp;&nbsp;3 </font><font class="Apple-style-span" color="#a020f0">#include </font><font class="Apple-style-span" color="#ff00ff">&lt;stdlib.h&gt;</font><br><font class="Apple-style-span" color="#a52a2a">&nbsp;&nbsp;4 </font><br><font class="Apple-style-span" color="#a52a2a">&nbsp;&nbsp;5 </font><font class="Apple-style-span" color="#a020f0">#define MAX_INPUT </font><font class="Apple-style-span" color="#ff00ff">7<span class="writely-comment writely-comment-orange Apple-style-span" id="av5o">&nbsp;低级错误出现了在这里！输入６个字节！ -邱国钦 10-5-7 下午10:19</span>&nbsp;</font><br><font class="Apple-style-span" color="#a52a2a">&nbsp;&nbsp;6 </font><font class="Apple-style-span" color="#a020f0">#define MAX_LENGTH </font><font class="Apple-style-span" color="#ff00ff">150<span class="writely-comment writely-comment-orange Apple-style-span" id="erjl">&nbsp;第一个错误在这里，之前是 125 -邱国钦 10-5-7 下午10:20</span>&nbsp;</font><br><font class="Apple-style-span" color="#a52a2a">&nbsp;&nbsp;7 </font><font class="Apple-style-span" color="#a020f0">#define RADIX </font><font class="Apple-style-span" color="#ff00ff">10</font><br><font class="Apple-style-span" color="#a52a2a">&nbsp;&nbsp;8 </font><br><font class="Apple-style-span" color="#a52a2a">&nbsp;&nbsp;9 </font><font class="Apple-style-span" color="#0000ff">// function decleration ========================================</font><br><font class="Apple-style-span" color="#a52a2a">&nbsp;10 </font><font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;*precise_multiplex (<font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;A[], <font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;B[], <font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;C[]);<br><font class="Apple-style-span" color="#a52a2a">&nbsp;11 </font><font class="Apple-style-span" color="#2e8b57"><b>void</b></font>&nbsp;set_value(<font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;A[], <font class="Apple-style-span" color="#2e8b57"><b>const</b></font>&nbsp;<font class="Apple-style-span" color="#2e8b57"><b>size_t</b></font>&nbsp;LENGTH, <font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;value);<br><font class="Apple-style-span" color="#a52a2a">&nbsp;12 </font><font class="Apple-style-span" color="#2e8b57"><b>void</b></font>&nbsp;pretty_print (<font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;A[], <font class="Apple-style-span" color="#2e8b57"><b>const</b></font>&nbsp;<font class="Apple-style-span" color="#2e8b57"><b>size_t</b></font>&nbsp;LENGTH, <br><font class="Apple-style-span" color="#a52a2a">&nbsp;13 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#2e8b57"><b>const</b></font>&nbsp;<font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;num_of_fraction);<br><font class="Apple-style-span" color="#a52a2a">&nbsp;14 </font><br><font class="Apple-style-span" color="#a52a2a">&nbsp;15 </font><font class="Apple-style-span" color="#2e8b57"><b>typedef</b></font>&nbsp;<font class="Apple-style-span" color="#2e8b57"><b>struct</b></font>&nbsp;input<br><font class="Apple-style-span" color="#a52a2a">&nbsp;16 </font>{<br><font class="Apple-style-span" color="#a52a2a">&nbsp;17 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#2e8b57"><b>char</b></font>&nbsp;R[MAX_INPUT];<br><font class="Apple-style-span" color="#a52a2a">&nbsp;18 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;n;<br><font class="Apple-style-span" color="#a52a2a">&nbsp;19 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#2e8b57"><b>struct</b></font>&nbsp;input *p_next;<span class="writely-comment writely-comment-orange Apple-style-span" id="writely-comment-id-df4r7psc">&nbsp;为什么用 INPUT *p_next 编译不通过呢？ -邱国钦 10-5-7 下午10:29</span>&nbsp;<br><font class="Apple-style-span" color="#a52a2a">&nbsp;20 </font>} INPUT;<br><font class="Apple-style-span" color="#a52a2a">&nbsp;21 </font><br><font class="Apple-style-span" color="#a52a2a">&nbsp;22 </font><font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;main(<font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;argc, <font class="Apple-style-span" color="#2e8b57"><b>char</b></font>&nbsp;**argv)<br><font class="Apple-style-span" color="#a52a2a">&nbsp;23 </font>{<br><font class="Apple-style-span" color="#a52a2a">&nbsp;24 </font>&nbsp;&nbsp;&nbsp;&nbsp;INPUT *input_list = (INPUT *) malloc (<font class="Apple-style-span" color="#a52a2a"><b>sizeof</b></font>&nbsp;(INPUT));<br><font class="Apple-style-span" color="#a52a2a">&nbsp;25 </font>&nbsp;&nbsp;&nbsp;&nbsp;INPUT *p = input_list;<br><font class="Apple-style-span" color="#a52a2a">&nbsp;26 </font><br><font class="Apple-style-span" color="#a52a2a">&nbsp;27 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#2e8b57"><b>char</b></font>&nbsp;R[MAX_INPUT];<br><font class="Apple-style-span" color="#a52a2a">&nbsp;28 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;n;<br><font class="Apple-style-span" color="#a52a2a">&nbsp;29 </font><br><font class="Apple-style-span" color="#a52a2a">&nbsp;30 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;k;<br><font class="Apple-style-span" color="#a52a2a">&nbsp;31 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>while</b></font>&nbsp;(scanf (<font class="Apple-style-span" color="#ff00ff">"</font><font class="Apple-style-span" color="#6a5acd">%s%d</font><font class="Apple-style-span" color="#ff00ff">"</font>, R, &amp;n) == <font class="Apple-style-span" color="#ff00ff">2</font>)<br><font class="Apple-style-span" color="#a52a2a">&nbsp;32 </font>&nbsp;&nbsp;&nbsp;&nbsp;{<br><font class="Apple-style-span" color="#a52a2a">&nbsp;33 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p-&gt;p_next =&nbsp; (INPUT *) malloc (<font class="Apple-style-span" color="#a52a2a"><b>sizeof</b></font>&nbsp;(INPUT));<br><font class="Apple-style-span" color="#a52a2a">&nbsp;34 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p = p-&gt;p_next;<br><font class="Apple-style-span" color="#a52a2a">&nbsp;35 </font><br><font class="Apple-style-span" color="#a52a2a">&nbsp;36 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strcpy (p-&gt;R, R);<br><font class="Apple-style-span" color="#a52a2a">&nbsp;37 </font><font class="Apple-style-span" color="#0000ff">//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (k=0; k&lt;MAX_INPUT; ++k)</font><br><font class="Apple-style-span" color="#a52a2a">&nbsp;38 </font><font class="Apple-style-span" color="#0000ff">//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p-&gt;R[k] = R[k];</font><br><font class="Apple-style-span" color="#a52a2a">&nbsp;39 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p-&gt;n = n;<br><font class="Apple-style-span" color="#a52a2a">&nbsp;40 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p-&gt;p_next = <font class="Apple-style-span" color="#ff00ff">NULL</font>;<br><font class="Apple-style-span" color="#a52a2a">&nbsp;41 </font>&nbsp;&nbsp;&nbsp;&nbsp;}<br><font class="Apple-style-span" color="#a52a2a">&nbsp;42 </font><br><font class="Apple-style-span" color="#a52a2a">&nbsp;43 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;A[MAX_LENGTH];&nbsp;&nbsp;<font class="Apple-style-span" color="#0000ff">// A * B = C</font><br><font class="Apple-style-span" color="#a52a2a">&nbsp;44 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;B[MAX_LENGTH];<br><font class="Apple-style-span" color="#a52a2a">&nbsp;45 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;C[MAX_LENGTH];<br><font class="Apple-style-span" color="#a52a2a">&nbsp;46 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;D[MAX_LENGTH];<br><font class="Apple-style-span" color="#a52a2a">&nbsp;47 </font><br><font class="Apple-style-span" color="#a52a2a">&nbsp;48 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;*m1, *m2, *product, *others;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#0000ff">// multipliers and product</font><br><font class="Apple-style-span" color="#a52a2a">&nbsp;49 </font>&nbsp;&nbsp;&nbsp;&nbsp;m1 = A;<br><font class="Apple-style-span" color="#a52a2a">&nbsp;50 </font>&nbsp;&nbsp;&nbsp;&nbsp;m2 = B;<br><font class="Apple-style-span" color="#a52a2a">&nbsp;51 </font>&nbsp;&nbsp;&nbsp;&nbsp;product = C;<br><font class="Apple-style-span" color="#a52a2a">&nbsp;52 </font>&nbsp;&nbsp;&nbsp;&nbsp;others = D;<br><font class="Apple-style-span" color="#a52a2a">&nbsp;53 </font><br><font class="Apple-style-span" color="#a52a2a">&nbsp;54 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#2e8b57"><b>size_t</b></font>&nbsp;length;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#0000ff">// length of input string</font><br><font class="Apple-style-span" color="#a52a2a">&nbsp;55 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;i, j;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#0000ff">// loop variable</font><br><font class="Apple-style-span" color="#a52a2a">&nbsp;56 </font><br><font class="Apple-style-span" color="#a52a2a">&nbsp;57 </font>&nbsp;&nbsp;&nbsp;&nbsp;p = input_list-&gt;p_next;<br><font class="Apple-style-span" color="#a52a2a">&nbsp;58 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>while</b></font>&nbsp;(p)<br><font class="Apple-style-span" color="#a52a2a">&nbsp;59 </font>&nbsp;&nbsp;&nbsp;&nbsp;{<br><font class="Apple-style-span" color="#a52a2a">&nbsp;60 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>for</b></font>&nbsp;(i=<font class="Apple-style-span" color="#ff00ff">0</font>; i&lt;MAX_INPUT; ++i)<br><font class="Apple-style-span" color="#a52a2a">&nbsp;61 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R[i] = p-&gt;R[i];<br><font class="Apple-style-span" color="#a52a2a">&nbsp;62 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n = p-&gt;n;<br><font class="Apple-style-span" color="#a52a2a">&nbsp;63 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p = p-&gt;p_next;<br><font class="Apple-style-span" color="#a52a2a">&nbsp;64 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><font class="Apple-style-span" color="#a52a2a">&nbsp;65 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#0000ff">// n is zero:</font><br><font class="Apple-style-span" color="#a52a2a">&nbsp;66 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>if</b></font>&nbsp;(!n)<br><font class="Apple-style-span" color="#a52a2a">&nbsp;67 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br><font class="Apple-style-span" color="#a52a2a">&nbsp;68 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf (<font class="Apple-style-span" color="#ff00ff">"1</font><font class="Apple-style-span" color="#6a5acd">\n</font><font class="Apple-style-span" color="#ff00ff">"</font>);<br><font class="Apple-style-span" color="#a52a2a">&nbsp;69 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>continue</b></font>;<br><font class="Apple-style-span" color="#a52a2a">&nbsp;70 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><font class="Apple-style-span" color="#a52a2a">&nbsp;71 </font><br><font class="Apple-style-span" color="#a52a2a">&nbsp;72 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#0000ff">// initial *others* (=1) ====================================</font><br><font class="Apple-style-span" color="#a52a2a">&nbsp;73 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set_value (others, MAX_LENGTH-<font class="Apple-style-span" color="#ff00ff">1</font>, <font class="Apple-style-span" color="#ff00ff">0</font>);<br><font class="Apple-style-span" color="#a52a2a">&nbsp;74 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;others[MAX_LENGTH-<font class="Apple-style-span" color="#ff00ff">1</font>] = <font class="Apple-style-span" color="#ff00ff">1</font>;<br><font class="Apple-style-span" color="#a52a2a">&nbsp;75 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><font class="Apple-style-span" color="#a52a2a">&nbsp;76 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#0000ff">// store R into m1 in integer format ========================</font><br><font class="Apple-style-span" color="#a52a2a">&nbsp;77 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set_value (m1, MAX_LENGTH, <font class="Apple-style-span" color="#ff00ff">0</font>);<br><font class="Apple-style-span" color="#a52a2a">&nbsp;78 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;length = strlen (R);<br><font class="Apple-style-span" color="#a52a2a">&nbsp;79 </font><br><font class="Apple-style-span" color="#a52a2a">&nbsp;80 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#0000ff">// figure out total number of input digits ------------------</font><br><font class="Apple-style-span" color="#a52a2a">&nbsp;81 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;start;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#0000ff">// where the storage *start*</font><br><font class="Apple-style-span" color="#a52a2a">&nbsp;82 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>if</b></font>&nbsp;(strchr (R, <font class="Apple-style-span" color="#ff00ff">'.'</font>))<br><font class="Apple-style-span" color="#a52a2a">&nbsp;83 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br><font class="Apple-style-span" color="#a52a2a">&nbsp;84 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#0000ff">// get ride of suffixing zeros</font><br><font class="Apple-style-span" color="#a52a2a">&nbsp;85 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>for</b></font>&nbsp;(i=length-<font class="Apple-style-span" color="#ff00ff">1</font>; i&gt;=<font class="Apple-style-span" color="#ff00ff">0</font>; --i)<br><font class="Apple-style-span" color="#a52a2a">&nbsp;86 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br><font class="Apple-style-span" color="#a52a2a">&nbsp;87 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>if</b></font>&nbsp;(<font class="Apple-style-span" color="#ff00ff">'0'</font>&nbsp;== R[i])<br><font class="Apple-style-span" color="#a52a2a">&nbsp;88 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br><font class="Apple-style-span" color="#a52a2a">&nbsp;89 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R[i] = <font class="Apple-style-span" color="#6a5acd">'\0'</font>;<br><font class="Apple-style-span" color="#a52a2a">&nbsp;90 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;length -= <font class="Apple-style-span" color="#ff00ff">1</font>;<br><font class="Apple-style-span" color="#a52a2a">&nbsp;91 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><font class="Apple-style-span" color="#a52a2a">&nbsp;92 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>else</b></font><br><font class="Apple-style-span" color="#a52a2a">&nbsp;93 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>break</b></font>;<br><font class="Apple-style-span" color="#a52a2a">&nbsp;94 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><font class="Apple-style-span" color="#a52a2a">&nbsp;95 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start = MAX_LENGTH - length + <font class="Apple-style-span" color="#ff00ff">1</font>;<br><font class="Apple-style-span" color="#a52a2a">&nbsp;96 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><font class="Apple-style-span" color="#a52a2a">&nbsp;97 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>else</b></font><br><font class="Apple-style-span" color="#a52a2a">&nbsp;98 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start = MAX_LENGTH - length;<br><font class="Apple-style-span" color="#a52a2a">&nbsp;99 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><font class="Apple-style-span" color="#a52a2a">100 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;dot_pos = -<font class="Apple-style-span" color="#ff00ff">1</font>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font class="Apple-style-span" color="#0000ff">// position of the dot</font><br><font class="Apple-style-span" color="#a52a2a">101 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>for</b></font>&nbsp;(i=<font class="Apple-style-span" color="#ff00ff">0</font>, j=<font class="Apple-style-span" color="#ff00ff">0</font>; i&lt;length; ++i)<br><font class="Apple-style-span" color="#a52a2a">102 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br><font class="Apple-style-span" color="#a52a2a">103 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#0000ff">// skip the dot</font><br><font class="Apple-style-span" color="#a52a2a">104 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>if</b></font>&nbsp;(<font class="Apple-style-span" color="#ff00ff">'.'</font>&nbsp;== R[i])<br><font class="Apple-style-span" color="#a52a2a">105 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br><font class="Apple-style-span" color="#a52a2a">106 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dot_pos = i;<br><font class="Apple-style-span" color="#a52a2a">107 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>continue</b></font>;<br><font class="Apple-style-span" color="#a52a2a">108 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><font class="Apple-style-span" color="#a52a2a">109 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m1[start+j] = (<font class="Apple-style-span" color="#2e8b57"><b>int</b></font>)(R[i] - <font class="Apple-style-span" color="#ff00ff">'1'</font>&nbsp;+ <font class="Apple-style-span" color="#ff00ff">1</font>);<br><font class="Apple-style-span" color="#a52a2a">110 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;++j;<br><font class="Apple-style-span" color="#a52a2a">111 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><font class="Apple-style-span" color="#a52a2a">112 </font><br><font class="Apple-style-span" color="#a52a2a">113 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#0000ff">// figure out number of fraction</font><br><font class="Apple-style-span" color="#a52a2a">114 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;number_of_fraction = <font class="Apple-style-span" color="#ff00ff">0</font>;<br><font class="Apple-style-span" color="#a52a2a">115 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>if</b></font>&nbsp;(-<font class="Apple-style-span" color="#ff00ff">1</font>&nbsp;!= dot_pos)<br><font class="Apple-style-span" color="#a52a2a">116 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;number_of_fraction = n * (length - dot_pos - <font class="Apple-style-span" color="#ff00ff">1</font>);&nbsp;&nbsp;<font class="Apple-style-span" color="#0000ff">// </font><br><font class="Apple-style-span" color="#a52a2a">117 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><font class="Apple-style-span" color="#a52a2a">118 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>if</b></font>&nbsp;(n == <font class="Apple-style-span" color="#ff00ff">1</font>)<br><font class="Apple-style-span" color="#a52a2a">119 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br><font class="Apple-style-span" color="#a52a2a">120 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pretty_print (m1, MAX_LENGTH, number_of_fraction);<br><font class="Apple-style-span" color="#a52a2a">121 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>continue</b></font>;<br><font class="Apple-style-span" color="#a52a2a">122 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><font class="Apple-style-span" color="#a52a2a">123 </font><br><font class="Apple-style-span" color="#a52a2a">124 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;*temp;<br><font class="Apple-style-span" color="#a52a2a">125 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><font class="Apple-style-span" color="#a52a2a">126 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>while</b></font>&nbsp;(n&gt;<font class="Apple-style-span" color="#ff00ff">1</font>)<br><font class="Apple-style-span" color="#a52a2a">127 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br><font class="Apple-style-span" color="#a52a2a">128 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>if</b></font>&nbsp;(n%<font class="Apple-style-span" color="#ff00ff">2</font>)<br><font class="Apple-style-span" color="#a52a2a">129 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br><font class="Apple-style-span" color="#a52a2a">130 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set_value (product, MAX_LENGTH, <font class="Apple-style-span" color="#ff00ff">0</font>);<br><font class="Apple-style-span" color="#a52a2a">131 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp = others;<br><font class="Apple-style-span" color="#a52a2a">132 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;others = precise_multiplex (m1, others, product);<br><font class="Apple-style-span" color="#a52a2a">133 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;product = temp;<br><font class="Apple-style-span" color="#a52a2a">134 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#0000ff">// copy_array (B, others, MAX_LENGTH);</font><br><font class="Apple-style-span" color="#a52a2a">135 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n -= <font class="Apple-style-span" color="#ff00ff">1</font>;<br><font class="Apple-style-span" color="#a52a2a">136 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>continue</b></font>;<br><font class="Apple-style-span" color="#a52a2a">137 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><font class="Apple-style-span" color="#a52a2a">138 </font><br><font class="Apple-style-span" color="#a52a2a">139 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#0000ff">// copy m1 to m2; reset product</font><br><font class="Apple-style-span" color="#a52a2a">140 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>for</b></font>&nbsp;(i=<font class="Apple-style-span" color="#ff00ff">0</font>; i&lt;MAX_LENGTH; ++i)<br><font class="Apple-style-span" color="#a52a2a">141 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br><font class="Apple-style-span" color="#a52a2a">142 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m2[i] = m1[i];<br><font class="Apple-style-span" color="#a52a2a">143 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;product[i] = <font class="Apple-style-span" color="#ff00ff">0</font>;<br><font class="Apple-style-span" color="#a52a2a">144 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><font class="Apple-style-span" color="#a52a2a">145 </font><br><font class="Apple-style-span" color="#a52a2a">146 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp = m1;<br><font class="Apple-style-span" color="#a52a2a">147 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m1 = precise_multiplex (m1, m2, product);<br><font class="Apple-style-span" color="#a52a2a">148 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;product = temp;<br><font class="Apple-style-span" color="#a52a2a">149 </font><br><font class="Apple-style-span" color="#a52a2a">150 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;n /= <font class="Apple-style-span" color="#ff00ff">2</font>;<br><font class="Apple-style-span" color="#a52a2a">151 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><font class="Apple-style-span" color="#a52a2a">152 </font><br><font class="Apple-style-span" color="#a52a2a">153 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#0000ff">// compute final result</font><br><font class="Apple-style-span" color="#a52a2a">154 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set_value (product, MAX_LENGTH, <font class="Apple-style-span" color="#ff00ff">0</font>);<br><font class="Apple-style-span" color="#a52a2a">155 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;precise_multiplex (m1, others, product);<br><font class="Apple-style-span" color="#a52a2a">156 </font><br><font class="Apple-style-span" color="#a52a2a">157 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#0000ff">// print the result</font><br><font class="Apple-style-span" color="#a52a2a">158 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pretty_print (product, MAX_LENGTH, number_of_fraction);<br><font class="Apple-style-span" color="#a52a2a">159 </font>&nbsp;&nbsp;&nbsp;&nbsp;}<br><font class="Apple-style-span" color="#a52a2a">160 </font><br><font class="Apple-style-span" color="#a52a2a">161 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>return</b></font>&nbsp;<font class="Apple-style-span" color="#ff00ff">0</font>;<br><font class="Apple-style-span" color="#a52a2a">162 </font>}<br><font class="Apple-style-span" color="#a52a2a">163 </font><br><font class="Apple-style-span" color="#a52a2a">164 </font><font class="Apple-style-span" color="#0000ff">// @func: set_value</font><br><font class="Apple-style-span" color="#a52a2a">165 </font><font class="Apple-style-span" color="#0000ff">// set all elements in array *A* of length *LENGTH* to *value*</font><br><font class="Apple-style-span" color="#a52a2a">166 </font><font class="Apple-style-span" color="#0000ff">// @param A: array to be set</font><br><font class="Apple-style-span" color="#a52a2a">167 </font><font class="Apple-style-span" color="#0000ff">// @param LENGTH: length of *A*</font><br><font class="Apple-style-span" color="#a52a2a">168 </font><font class="Apple-style-span" color="#0000ff">// @param value: the desire value</font><br><font class="Apple-style-span" color="#a52a2a">169 </font><font class="Apple-style-span" color="#0000ff">// </font><font class="Apple-style-span"><span class="Apple-style-span" style="background-color:#ffff00"><font class="Apple-style-span" color="#0000ff">TODO</font></span></font><font class="Apple-style-span" color="#0000ff">: may exsits a better way to do this</font><br><font class="Apple-style-span" color="#a52a2a">170 </font><font class="Apple-style-span" color="#2e8b57"><b>void</b></font>&nbsp;set_value(<font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;A[], <font class="Apple-style-span" color="#2e8b57"><b>const</b></font>&nbsp;<font class="Apple-style-span" color="#2e8b57"><b>size_t</b></font>&nbsp;LENGTH, <font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;value)<br><font class="Apple-style-span" color="#a52a2a">171 </font>{<br><font class="Apple-style-span" color="#a52a2a">172 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;i;<br><font class="Apple-style-span" color="#a52a2a">173 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>for</b></font>&nbsp;(i=<font class="Apple-style-span" color="#ff00ff">0</font>; i&lt;LENGTH; ++i)<br><font class="Apple-style-span" color="#a52a2a">174 </font>&nbsp;&nbsp;&nbsp;&nbsp;{<br><font class="Apple-style-span" color="#a52a2a">175 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A[i] = value;<br><font class="Apple-style-span" color="#a52a2a">176 </font>&nbsp;&nbsp;&nbsp;&nbsp;}<br><font class="Apple-style-span" color="#a52a2a">177 </font>}<br><font class="Apple-style-span" color="#a52a2a">178 </font><br><font class="Apple-style-span" color="#a52a2a">179 </font><font class="Apple-style-span" color="#0000ff">// @func: precise_multiplex</font><br><font class="Apple-style-span" color="#a52a2a">180 </font><font class="Apple-style-span" color="#0000ff">// calculate A*Bmalloc, and store the product into C</font><br><font class="Apple-style-span" color="#a52a2a">181 </font><font class="Apple-style-span" color="#0000ff">// @param A, B, C: integer array storing digits of radix-10</font><br><font class="Apple-style-span" color="#a52a2a">182 </font><font class="Apple-style-span" color="#0000ff">// @return: the product of A*B</font><br><font class="Apple-style-span" color="#a52a2a">183 </font><font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;*precise_multiplex (<font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;A[], <font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;B[], <font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;C[])<br><font class="Apple-style-span" color="#a52a2a">184 </font>{<br><font class="Apple-style-span" color="#a52a2a">185 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#0000ff">// find the length of A and B</font><br><font class="Apple-style-span" color="#a52a2a">186 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;start_A, start_B;<br><font class="Apple-style-span" color="#a52a2a">187 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>for</b></font>&nbsp;(start_A=<font class="Apple-style-span" color="#ff00ff">0</font>; start_A&lt;MAX_LENGTH; ++start_A)<br><font class="Apple-style-span" color="#a52a2a">188 </font>&nbsp;&nbsp;&nbsp;&nbsp;{<br><font class="Apple-style-span" color="#a52a2a">189 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>if</b></font>&nbsp;(A[start_A])<br><font class="Apple-style-span" color="#a52a2a">190 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>break</b></font>;<br><font class="Apple-style-span" color="#a52a2a">191 </font>&nbsp;&nbsp;&nbsp;&nbsp;}<br><font class="Apple-style-span" color="#a52a2a">192 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>for</b></font>&nbsp;(start_B=<font class="Apple-style-span" color="#ff00ff">0</font>; start_B&lt;MAX_LENGTH; ++start_B)<br><font class="Apple-style-span" color="#a52a2a">193 </font>&nbsp;&nbsp;&nbsp;&nbsp;{<br><font class="Apple-style-span" color="#a52a2a">194 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>if</b></font>&nbsp;(B[start_B])<br><font class="Apple-style-span" color="#a52a2a">195 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>break</b></font>;<br><font class="Apple-style-span" color="#a52a2a">196 </font>&nbsp;&nbsp;&nbsp;&nbsp;}<br><font class="Apple-style-span" color="#a52a2a">197 </font><br><font class="Apple-style-span" color="#a52a2a">198 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;length_A, length_B;<br><font class="Apple-style-span" color="#a52a2a">199 </font>&nbsp;&nbsp;&nbsp;&nbsp;length_A = MAX_LENGTH - start_A;<br><font class="Apple-style-span" color="#a52a2a">200 </font>&nbsp;&nbsp;&nbsp;&nbsp;length_B = MAX_LENGTH - start_B;<br><font class="Apple-style-span" color="#a52a2a">201 </font><br><font class="Apple-style-span" color="#a52a2a">202 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;temp, remainder, carry;<br><font class="Apple-style-span" color="#a52a2a">203 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;i, j, k;<br><font class="Apple-style-span" color="#a52a2a">204 </font><br><font class="Apple-style-span" color="#a52a2a">205 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#0000ff">// multiplex every digit</font><br><font class="Apple-style-span" color="#a52a2a">206 </font>&nbsp;&nbsp;&nbsp;&nbsp;k = <font class="Apple-style-span" color="#ff00ff">0</font>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#0000ff">// 位置标志</font><br><font class="Apple-style-span" color="#a52a2a">207 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>for</b></font>&nbsp;(i=MAX_LENGTH-<font class="Apple-style-span" color="#ff00ff">1</font>; i&gt;=start_B; --i)<br><font class="Apple-style-span" color="#a52a2a">208 </font>&nbsp;&nbsp;&nbsp;&nbsp;{<br><font class="Apple-style-span" color="#a52a2a">209 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>for</b></font>&nbsp;(j=MAX_LENGTH-<font class="Apple-style-span" color="#ff00ff">1</font>; j&gt;=start_A; --j)<br><font class="Apple-style-span" color="#a52a2a">210 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br><font class="Apple-style-span" color="#a52a2a">211 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp = B[i] * A[j];<br><font class="Apple-style-span" color="#a52a2a">212 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;carry = temp / RADIX;<br><font class="Apple-style-span" color="#a52a2a">213 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;remainder = temp % RADIX;<br><font class="Apple-style-span" color="#a52a2a">214 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#0000ff">// </font><font class="Apple-style-span"><span class="Apple-style-span" style="background-color:#ffff00"><font class="Apple-style-span" color="#0000ff">TODO</font></span></font><font class="Apple-style-span" color="#0000ff">: overflow?</font><br><font class="Apple-style-span" color="#a52a2a">215 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C[j-k] += remainder;<br><font class="Apple-style-span" color="#a52a2a">216 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C[j-<font class="Apple-style-span" color="#ff00ff">1</font>-k] += carry;<br><font class="Apple-style-span" color="#a52a2a">217 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><font class="Apple-style-span" color="#a52a2a">218 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k++;<br><font class="Apple-style-span" color="#a52a2a">219 </font>&nbsp;&nbsp;&nbsp;&nbsp;}<br><font class="Apple-style-span" color="#a52a2a">220 </font><br><font class="Apple-style-span" color="#a52a2a">221 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#0000ff">// 在最后处理每个数组元素</font><br><font class="Apple-style-span" color="#a52a2a">222 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;start_C;<br><font class="Apple-style-span" color="#a52a2a">223 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>for</b></font>&nbsp;(start_C=<font class="Apple-style-span" color="#ff00ff">0</font>; start_C&lt;MAX_LENGTH; ++start_C)<br><font class="Apple-style-span" color="#a52a2a">224 </font>&nbsp;&nbsp;&nbsp;&nbsp;{<br><font class="Apple-style-span" color="#a52a2a">225 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>if</b></font>&nbsp;(C[start_C])<br><font class="Apple-style-span" color="#a52a2a">226 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>break</b></font>;<br><font class="Apple-style-span" color="#a52a2a">227 </font>&nbsp;&nbsp;&nbsp;&nbsp;}<br><font class="Apple-style-span" color="#a52a2a">228 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>for</b></font>&nbsp;(i=MAX_LENGTH-<font class="Apple-style-span" color="#ff00ff">1</font>; i&gt;=start_C; --i)<br><font class="Apple-style-span" color="#a52a2a">229 </font>&nbsp;&nbsp;&nbsp;&nbsp;{<br><font class="Apple-style-span" color="#a52a2a">230 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;carry = C[i] / RADIX;<br><font class="Apple-style-span" color="#a52a2a">231 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C[i] = C[i] % RADIX;<br><font class="Apple-style-span" color="#a52a2a">232 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C[i-<font class="Apple-style-span" color="#ff00ff">1</font>] += carry;<br><font class="Apple-style-span" color="#a52a2a">233 </font>&nbsp;&nbsp;&nbsp;&nbsp;}<br><font class="Apple-style-span" color="#a52a2a">234 </font><br><font class="Apple-style-span" color="#a52a2a">235 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>return</b></font>&nbsp;C;<br><font class="Apple-style-span" color="#a52a2a">236 </font>}<br><font class="Apple-style-span" color="#a52a2a">237 </font><br><font class="Apple-style-span" color="#a52a2a">238 </font><font class="Apple-style-span" color="#2e8b57"><b>void</b></font>&nbsp;pretty_print (<font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;A[], <font class="Apple-style-span" color="#2e8b57"><b>const</b></font>&nbsp;<font class="Apple-style-span" color="#2e8b57"><b>size_t</b></font>&nbsp;LENGTH, <br><font class="Apple-style-span" color="#a52a2a">239 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#2e8b57"><b>const</b></font>&nbsp;<font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;num_of_fraction)<br><font class="Apple-style-span" color="#a52a2a">240 </font>{<br><font class="Apple-style-span" color="#a52a2a">241 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;i;<br><font class="Apple-style-span" color="#a52a2a">242 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#0000ff">// find the first nonzero element</font><br><font class="Apple-style-span" color="#a52a2a">243 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>for</b></font>&nbsp;(i=<font class="Apple-style-span" color="#ff00ff">0</font>; i&lt;LENGTH; ++i)<br><font class="Apple-style-span" color="#a52a2a">244 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>if</b></font>&nbsp;(A[i])<br><font class="Apple-style-span" color="#a52a2a">245 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>break</b></font>;<br><font class="Apple-style-span" color="#a52a2a">246 </font><br><font class="Apple-style-span" color="#a52a2a">247 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>if</b></font>&nbsp;((LENGTH-i) &lt; num_of_fraction)<br><font class="Apple-style-span" color="#a52a2a">248 </font>&nbsp;&nbsp;&nbsp;&nbsp;{<br><font class="Apple-style-span" color="#a52a2a">249 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf (<font class="Apple-style-span" color="#ff00ff">"."</font>);<br><font class="Apple-style-span" color="#a52a2a">250 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i = LENGTH - num_of_fraction;<br><font class="Apple-style-span" color="#a52a2a">251 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>for</b></font>&nbsp;(i; i&lt;LENGTH; ++i)<br><font class="Apple-style-span" color="#a52a2a">252 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf (<font class="Apple-style-span" color="#ff00ff">"</font><font class="Apple-style-span" color="#6a5acd">%d</font><font class="Apple-style-span" color="#ff00ff">"</font>, A[i]);<br><font class="Apple-style-span" color="#a52a2a">253 </font>&nbsp;&nbsp;&nbsp;&nbsp;}<br><font class="Apple-style-span" color="#a52a2a">254 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>else</b></font><br><font class="Apple-style-span" color="#a52a2a">255 </font>&nbsp;&nbsp;&nbsp;&nbsp;{<br><font class="Apple-style-span" color="#a52a2a">256 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#2e8b57"><b>int</b></font>&nbsp;num_of_int = LENGTH - num_of_fraction;<br><font class="Apple-style-span" color="#a52a2a">257 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>for</b></font>&nbsp;(i; i&lt;LENGTH; ++i)<br><font class="Apple-style-span" color="#a52a2a">258 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br><font class="Apple-style-span" color="#a52a2a">259 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font class="Apple-style-span" color="#a52a2a"><b>if</b></font>&nbsp;(i == num_of_int)<br><font class="Apple-style-span" color="#a52a2a">260 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf (<font class="Apple-style-span" color="#ff00ff">"."</font>);<br><font class="Apple-style-span" color="#a52a2a">261 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf (<font class="Apple-style-span" color="#ff00ff">"</font><font class="Apple-style-span" color="#6a5acd">%d</font><font class="Apple-style-span" color="#ff00ff">"</font>, A[i]);<br><font class="Apple-style-span" color="#a52a2a">262 </font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br><font class="Apple-style-span" color="#a52a2a">263 </font>&nbsp;&nbsp;&nbsp;&nbsp;}<br><font class="Apple-style-span" color="#a52a2a">264 </font>&nbsp;&nbsp;&nbsp;&nbsp;printf (<font class="Apple-style-span" color="#ff00ff">"</font><font class="Apple-style-span" color="#6a5acd">\n</font><font class="Apple-style-span" color="#ff00ff">"</font>);<br><font class="Apple-style-span" color="#a52a2a">265 </font>}<br></font><br><img src ="http://www.cppblog.com/beta/aggbug/114793.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/beta/" target="_blank">beta</a> 2010-05-07 22:32 <a href="http://www.cppblog.com/beta/archive/2010/05/07/114793.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>test this blog system</title><link>http://www.cppblog.com/beta/archive/2010/05/06/114561.html</link><dc:creator>beta</dc:creator><author>beta</author><pubDate>Thu, 06 May 2010 01:50:00 GMT</pubDate><guid>http://www.cppblog.com/beta/archive/2010/05/06/114561.html</guid><wfw:comment>http://www.cppblog.com/beta/comments/114561.html</wfw:comment><comments>http://www.cppblog.com/beta/archive/2010/05/06/114561.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/beta/comments/commentRss/114561.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/beta/services/trackbacks/114561.html</trackback:ping><description><![CDATA[

This an&nbsp;English&nbsp;sentence.<div>and another English sentence.</div><div>这是中文。</div><div>下面是代码：<br><div style="background-color: rgb(238, 238, 238); font-size: 13px; border-left-color: rgb(204, 204, 204); padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #008080; ">&nbsp;1</span>&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;@file:&nbsp;poj_1000.c</span><span style="color: #008000; "><br></span><span style="color: #008080; ">&nbsp;2</span>&nbsp;<span style="color: #008000; "></span><span style="color: #000000; "><br></span><span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #000000; ">#include&nbsp;</span><span style="color: #000000; ">&lt;</span><span style="color: #000000; ">stdio.h</span><span style="color: #000000; ">&gt;</span><span style="color: #000000; "><br></span><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #000000; "><br></span><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;main(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;argc,&nbsp;</span><span style="color: #0000FF; ">char</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">**</span><span style="color: #000000; ">argv)<br></span><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #000000; ">{<br></span><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">&nbsp;a,&nbsp;b;<br></span><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;scanf&nbsp;(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%d&nbsp;%d</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,&nbsp;</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">a,&nbsp;</span><span style="color: #000000; ">&amp;</span><span style="color: #000000; ">b);<br></span><span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;printf&nbsp;(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">%d\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,&nbsp;a</span><span style="color: #000000; ">+</span><span style="color: #000000; ">b);<br></span><span style="color: #008080; ">10</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br></span><span style="color: #008080; ">11</span>&nbsp;<span style="color: #000000; ">}</span></div></div><img src ="http://www.cppblog.com/beta/aggbug/114561.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/beta/" target="_blank">beta</a> 2010-05-06 09:50 <a href="http://www.cppblog.com/beta/archive/2010/05/06/114561.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>