| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1174 人关注过本帖
标题:一个十进制数转换成R进制数的转换问题,我已经写出代码,但有个小问题。。。 ...
只看楼主 加入收藏
浪漫横行
Rank: 4
等 级:业余侠客
威 望:1
帖 子:127
专家分:291
注 册:2013-4-30
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
一个十进制数转换成R进制数的转换问题,我已经写出代码,但有个小问题。。。。
输入一个十进制数N(0 < = N < = 1000),将它转换成R进制数输出。

Input  

输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。

Output  

为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。

#include<stdio.h>
int main()
{
 int n,r;
 scanf("%d%d",&n,&r);
int a[1000],i=0,j;

 while(1)
 {
  a[i]=n%r;
  n=n/r;
  if(n==0)break;
  i++;

 }
 for(j=i; j>=0; j--)
  printf("%d",a[j]);
  printf("\n");
 return 0;
}
如何把余数大于10的数转换成相应的'A','B'.....
搜索更多相关主题的帖子: include 十进制 
2013-09-08 00:38
youngdavid
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:107
专家分:698
注 册:2012-9-24
收藏
得分:20 
可以加一条判断语句,如果r>10 以字符方式输出,将a[j]的ASCII码转换为ABC的ASCII码输出。
2013-09-08 09:10
youngdavid
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:107
专家分:698
注 册:2012-9-24
收藏
得分:0 
代码如下:
程序代码:
#include<stdio.h>
int main()
{
int n,r;
scanf("%d%d",&n,&r);
int a[1000],i=0,j;


while(1)
{
  a[i]=n%r;
  n=n/r;

 // printf("%d\n",a[i]);
  if(n==0)break;
  i++;

}
for(j=i; j>=0; j--)
{


  if(a[j]>10)
  printf("%c",a[j]-10+65);
  else

  printf("%d",a[j]);
  printf("\n");
}
return 0;
}

2013-09-08 09:30
浪漫横行
Rank: 4
等 级:业余侠客
威 望:1
帖 子:127
专家分:291
注 册:2013-4-30
收藏
得分:0 
回复 3楼 youngdavid
#include<stdio.h>
 int main()
 {  int a,b;
 scanf("%X%X",&a,&b);
  if(a+b<0)
  printf("-%X",-a-b);
 else
     printf("%X",a+b);

 printf("\n");
 return 0;
 }
请教一下为什么这个要判断是否小于0,不判断为什么是错的。。。
2013-09-08 10:59
情.难言ゝ
Rank: 3Rank: 3
来 自:安徽安庆
等 级:论坛游侠
威 望:1
帖 子:74
专家分:137
注 册:2013-9-8
收藏
得分:0 
可以试着用switch()语句,我最近也在做这一题,也有错误

树叶的离去,是风的追求、还是树的不挽留???
2013-09-08 18:23
cloudycloud
Rank: 2
等 级:论坛游民
帖 子:14
专家分:35
注 册:2013-6-14
收藏
得分:0 
#include<stdio.h>
int main()
{
int n,r;
int a[18],i=0,j;//把a定义小点因为2的18次 远超过整形的界限
printf("请输入整数与数制(格式:n r)");//建议加上的界面信息
scanf("%d %d",&n,&r);
while(1)
{
  a[i]=n%r;
  n=n/r;
  if(n==0)break;
  i++;

}
printf("转换后:");//建议加上的界面信息
for(j=i; j>=0; j--)
{


  if(a[j]>10)
  printf("%c",a[j]-10+'A');//我的形式
  else

  printf("%d",a[j]);

}
printf("\n");
return 0;
}

[ 本帖最后由 cloudycloud 于 2013-9-8 22:21 编辑 ]
2013-09-08 22:15
youngdavid
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:107
专家分:698
注 册:2012-9-24
收藏
得分:0 
回复 4楼 浪漫横行
你要实现什么功能?
2013-09-09 21:21
林静土
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2016-4-9
收藏
得分:0 
回复 3楼 youngdavid
这个程序有错,欠缺了好几种考虑
2016-04-09 15:42
快速回复:一个十进制数转换成R进制数的转换问题,我已经写出代码,但有个小问题 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018004 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved