基于visual Studio2013解决C语言竞赛题之1066进制转化




基于visual Studio2013解决C语言竞赛题之1066进制转化

题目

基于visual Studio2013解决C语言竞赛题之1066进制转化

解决代码及点评


/************************************************************************/
/*
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)新建工程

基于visual Studio2013解决C语言竞赛题之1066进制转化

2)选择工程

基于visual Studio2013解决C语言竞赛题之1066进制转化

3)创建完工程如下图:

基于visual Studio2013解决C语言竞赛题之1066进制转化

4)增加文件,右键点击项目

基于visual Studio2013解决C语言竞赛题之1066进制转化

5)在弹出菜单里做以下选择

基于visual Studio2013解决C语言竞赛题之1066进制转化

6)添加文件

基于visual Studio2013解决C语言竞赛题之1066进制转化

7)拷贝代码与运行

基于visual Studio2013解决C语言竞赛题之1066进制转化

程序运行结果

基于visual Studio2013解决C语言竞赛题之1066进制转化

代码下载

http://download.csdn.net/detail/yincheng01/6681845

解压密码:c.itcast.cn





上一篇:PowerShell查询sql server


下一篇:Oracle NOWAIT