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

知识点:1、十进制转换成其他进制,需要用到辗转相除法.

              例如十进制24转换成二进制:11000

              

            2、得到的二进制结果是最后的余数往上累积,这里我们得用到数组,先用数组储存这些余数,再将储存的数按照我们想要的方式输出。

关键步骤: 

第一步:写出辗转相除的式子,求出其所有余数

a[i]=x%r;
x/=r;//辗转相除最常用式子

 第二步:将余数储存在数组里

int i=0,a[50];
while(x!=0)
{
  a[i]=x%r;//这里可以直接写a[i++];后续就不用写i++
  x/=r;
  i++;
} 

 第三步:将储存在数组里的数逆序输出

while(i>=0)//i=0后结束
{
  printf("%d",a[i--]);//逆序输出
}

 第四步:组合

#include<stdio.h>
int change(int x,int r)
{
  int i=0,a[50];
  while(x!=0)
  {
   a[i++]=x%r;//从a[1]开始算
   x/=r;
  }
  i--;//减去1,让其从a[0]开始算
  while(i>=0)
  {
   printf("%d",a[i--]);
  }
return a[i];//这里返回什么都可以,输出在上。
}
void main()
{
  int x,r;
  printf("请输入x,r的值:");
  scanf("%d %d",&x,&r);
  change(x,r);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值