求助!急!!!考试题!!用C语言编程

来源:百度知道 编辑:UC知道 时间:2024/06/24 12:19:11
从键盘上输入一个串,以空格分成三部分,第一部分为待转换的数值,第二部分为转换前的进制,第三部分为转换后的进制,编程得到转换后的结果。要求(1)画出程序流程图,(2)写出程序,(3)对程序的编写谈谈你自己的一些看法。谢谢你们了!!尽您的努力吧!

转化前的进制->十进制->新的进制

#include <stdio.h>
void main()
{
long iInvert; //待转化的数
int iHexOld; //转化前的进制
int iHexNew; //转化后的进制
long iResults=0; //结果
int ibit; //每个位的值
int iTmp=1;
int iTmp0=1;

scanf("%d %d %d",&iInvert,&iHexOld,&iHexNew);

/**
*将待转化的数转为十进制
*/
for(int i=1;i<20;i++)
{
ibit=(iInvert%(iTmp0*10))/iTmp0;
iTmp0*=10;
iResults+=ibit*iTmp;
iTmp*=iHexOld;
}

iInvert=iResults;
iResults=0;
iTmp0=1;

/**
* 变为新进制
*/
for(int i=1;i<20;i++)
{
iResults+=(iInvert%iHexNew)*iTmp0;
iTmp0*=10;
iInvert=iInvert/iHexNew;
}
printf("结果: %d\n",iResults);
}