双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

一道北京某公司的招聘测试题

huailairen huailairen 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
做一个8进制到10进制的转换函数。 函数名 :int get10(int A8) 将A8进行处理,返回A8的10进制数。
例:
void main()
{
printf("%d",get10(22));
}
运行的结果应该为:
18
我觉得有点意思,所以试了一下代码如下:
int get10(int A8)
{int tempA8; /*A8的正值表示*/
int numup; /*两个用来表示不断增加的区间,实现取得8进制数的每一位数值*/
int numdown;
int jz; /*用于8进制的乘法*/
int m,n; /*临时变量*/
int result; /**返回结果/
numup=10;
mumdown=1;
jz=1;
rusult=0;

if (A8<0){tempA8=-A8}
if (A8>0){tempA8=A8}
if (A8=0){tempA8=0;}

while(tempA8>numup)
{
m=tempA8%numup; /*小弟一般用vb和delphi很少用到c,记得%号是求余运算*/
n=m/numdown; /*/号好象是处法运算*/
result=result+n*jz;
numup=numup*10;
numdown=numdown*10;
jz=jz*8
}
n=tempA8/numdown;

if (A8<0)return -(result+n*jz);
if (A8>0)return (result+n*jz);
if (A8=0)return 0;
}

代码应该是这些。
不知道为什么考官认为我的答案不对,现在也没搞清错在那里?!!!,各位高手帮帮忙!!!
...全文

相关推荐

评论 6
收藏 已收藏
分享
返回顶部
huailairen
community_281 708 成员 253,686 内容