题目
解决代码及点评
/************************************************************************/
/*
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");
}
代码编译以及运行
由于资源上传太多,资源频道经常被锁定无法上传资源,同学们可以打开VS2013自己创建工程,步骤如下:
1)新建工程
2)选择工程
3)创建完工程如下图:
4)增加文件,右键点击项目
5)在弹出菜单里做以下选择
6)添加文件
7)拷贝代码与运行
程序运行结果
代码下载
http://download.csdn.net/detail/yincheng01/6681845
解压密码:c.itcast.cn