TA的每日心情 | 开心 2014-6-18 08:29 |
---|
签到天数: 14 天 [LV.3]偶尔看看II
滴水大师
 
- 积分
- 2345
|
题目
解决代码及点评
- <pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"></pre><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code">/************************************************************************/
- /*
- 66. 编写将一个十进制数M转化成N进制数(2≤N≤16)的程序。
- 提示:转化成N进制数的各位数可以分别放在数组的各个元素中。
- 注意:进制N超过10时, 用A表示10,B表示11,…,F表示15。
-
- */
- /************************************************************************/
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- #include <string.h>
- char * Myrevers(char *p)
- {
- char *s=p;
- char *e=p;
- while(*e!='\0')
- e++;
- e--;
- while(s<e)
- {
- char c=*s;
- *s=*e;
- *e=c;
- s++;
- e--;
- }
- return p;
- }
- char * ChangeW(int num,int n,char * p)
- { char * a=p;
- if (n<2||n>16)
- {
- printf("get out of my house");
- return NULL;
- }
- else
- {
- if (n<11)
- {
- while(num)
- {
- *p=num%n+'0';
- num/=n;
- p++;
- }
- }
- else
- {
- while(num)
- {
- int temp=num%n;
- if (temp>=10)
- {
- temp='A'+temp-10;
- }
- else
- {
- temp+='0';
- }
- *p=temp;
- p++;
- num/=n;
- }
-
- }
- *p='\0';
- Myrevers(a);
- return a;
-
- }
- }
-
-
-
- void main()
- {
- char arr[100];
- printf("%s\n",ChangeW(31,16,arr));
- printf("%s\n",ChangeW(17,15,arr));
- printf("%s\n",ChangeW(17,10,arr));
- printf("%s\n",ChangeW(17,2,arr));
- system("pause");
- }</pre><br><br><br></pre></pre></pre>
|
|