永发信息网

编写一个函数change(x,r),将十进制整数x转换成r(1<r<10)进制数后输出.

答案:3  悬赏:40  手机版
解决时间 2021-12-17 12:16
  • 提问者网友:丧钟为谁而鸣
  • 2021-12-17 05:55
C语言的,谢谢。
最佳答案
  • 五星知识达人网友:长不大的小祖宗
  • 2021-12-17 06:41
转成r(1 < r < 10)进制的话直接用内置整数类型表示就够了:

#include

int change(int n, int r)
{
int iresult = 0;
for(int i = 1; n > 0; n /= r, i *= 10)
{
iresult += n % r * i;
}

return iresult;
}

int main()
{
for(int i = 2; i < 10; ++i)
printf("%d 的 %2d 进制: %d\n", 16, i, change(16, i));
}
全部回答
  • 1楼网友:爷是黑户
  • 2021-12-17 08:19
这个函数标准库里有,不需要写。你搜下 itoa()函数;
  • 2楼网友:我与学霸最萌分数差
  • 2021-12-17 06:51
#include <stdio.h> char *change(int n,int k, char s[]) { int i = 0,len,t,num = 0; if(k < 2 || k > 36) return NULL; while(n) { t = n % k; if(t > 9) s[i] = t - 10 + 'A'; else s[i] = t + '0'; n /= k; ++i; } s[i] = '\0'; len = i; for(i = 0; i < len/2; ++i) { t = s[i]; s[i] = s[len - 1 - i]; s[len - 1 - i] = t; } return s; } int main() { int k,num; char s[33]; printf("num newbase:"); while(scanf("%d%d",&num,&k) == 2) { if(change(num,k,s)) printf("%s\n",s); else printf("不能转换到 %d 进制。\n",k); printf("num newbase(q to quit):"); } return 0; }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯