用c语言编程:进制转换

来源:百度知道 编辑:UC知道 时间:2024/09/21 18:17:59
要求:从键盘上输入一个串,以空格分成三部分,第一部分为待转换的数值,第二部分为转换前的进制,第三部分为转换后的进制,编程得到转换后的结果。
注意:进制可以是2-16之间的任意进制,输入输出要符合要求。
这次一道考试题,请各位高手相助,谢谢!!

上面的仁兄做的不怎样,不能满足要求。我做了一个。你试试!可以放很大的数。我也是菜鸟级的。希望我的付出你会认可!!
#include"stdio.h"
#include"math.h"
#include"ctype.h"
void main()
{
double R,S,N=0;
char a[50],m;
char str[]="0123456789ABCDEF",c[2];
int i=0,j=0,b[50];
long n;
clrscr();
printf("请输入转换前的数据N,进制R和转换后的进制S(R和S请勿超过16):\n");
scanf("%s%lf%lf",&a,&R,&S);
printf("将%.0lf进制数%s转换成%.0lf进制数的结果为:",R,a,S);
if(a[0]=='-')/*当以负数输入的时候输出负号*/
{
printf("-");
a[0]='0';
}
while(a[i]!='\0')/*把输进去的字符型转换成整型*/
{
if(a[i]>='0'&&a[i]<='9')
{
c[0]=a[i];
b[i]=atoi(c);/*数据类型转换*/
}
if(a[i]>='A'&&a[i]<='F')/*在以A至F输入时做处理*/
{
b[i]=a[i]-65+10;/*A的ASCLL为65*/