设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 1527|回复: 1
打印 上一主题 下一主题

[求助]for loop 为什么不执行???

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-4 00:55:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在做一个10进制转16进制的程序,程序如下,但是输出的结果是倒过来的~~~比如输入123,输出应为7B,但它输出的是B7, 我在for loop里面明明要它回倒了,为什么不执行呢???还是其他的原因,望哪为大哥帮忙看看~~

#include <iostream.h>
#include <stdlib.h>
void htio(int x, int y)
{
int d,i=0;
char Chars[] = {'A', 'B', 'C', 'D', 'E', 'F'};
while( x != 0 )
{
d = x % 16;
x = x / 16;
if ( d >=10)
cout << Chars[d-10];
else
cout << d;
}
for (d = i - 1; d >= 0; d--)
{
cout << Chars[d];
}
}
int main()
{
int a;
cout << "please enter a positive number ";
cin >> a;
cout << "\n";
htio(a, 16);
system("PAUSE");
return 0;
}
2#
发表于 2009-11-4 00:55:58 | 只看该作者
#include <iostream.h>
#include <stdlib.h>
#include<math.h>
void htio(int x, int y)
{
int d,i=0,j=x,k=-1;
char Chars[] = {'A', 'B', 'C', 'D', 'E', 'F','G','H'.......'Z'};
while(j!=0)
{
j=j/y;
k++;
}
while( k>=0 )
{
if(x>y-1)
{
d = x / (int)pow(y,k);
x = x % (int)pow(y,k--);
if ( d >=10)
cout << Chars[d-10];
else
cout << d;
}
else
{
d=x;
if ( d >=10)
cout << Chars[d-10];
else
cout << d;
break;
}
}
}
int main()
{
int a;
cout << "please enter a positive number ";
cin >> a;
cout << "\n";
htio(a, 16);
system("PAUSE");
return 0;
}
原来的有些多余,改后可以做10进制换n进制
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-18 21:30 , Processed in 0.087940 second(s), 9 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表