c++ 十进制转三进制?
#include #include #define N 30int main(){ int a[N],m,i=0,t; printf("请输入一个10进制数:
"); scanf("%d",&m);t=m;while(t){t/=3;a[i++]=m-3*t;m=t;}printf("转换成3进制数为:
"); while(i)printf("%d",a[--i]);printf("
"); return 0;}希望对你有所帮助,满意请采纳,谢谢!!
帮你修改好了,另外给你一个我做的,多个方法。递归做的//----------------------------------------------#include<iostream>usingnamespacestd;intmain(){inty,m,x[100],i=0;cout<<"请输入需要转换至进制数:";cin>>y;cout<<"请输入数字:";cin>>m;do{x[i]=m%y;m=m/y;i++;}while(m!=0);for(inta=i-1;a>=0;a--)cout<<x[a];cout<<endl;system("pause");return0;}//----------------------------------------------------------------#include<stdio.h>voidprintd(intn,intm){if(n<0){putchar('-');n=-n;}if(n/m)printd(n/m,m);putchar(n%m+'0');}voidmain(){intn;//进制转换的数printf("输入需要转换的数.
");scanf("%d",&n);//输出printf("
二进制:");printd(n,2);printf("
三进制:");printd(n,3);printf("
四进制:");printd(n,4);printf("
五进制:");printd(n,5);printf("
六进制:");printd(n,6);printf("
七进制:");printd(n,7);printf("
八进制:");printd(n,8);printf("
九进制:");printd(n,9);printf("
十进制:");printd(n,10);printf("
");}
#include <stdio.h>
#include <string.h>
// 将十进制数dnum转换为k进制串,并返回
char *D2K(int dnum, int k, char *kstring) {
int i,j,t,sign = 0;
if(k < 2 || k > 36) {
printf("仅支持 2 到 36 进制之间的转换。
");
strcpy(kstring,"*** 无效转换 ***
");
return kstring;
}
if(dnum < 0) {
sign = 1;
dnum = -dnum;
}
for(i = 0; dnum; ++i) {
t = dnum % k;
if(t > 9) kstring[i] = t - 10 + 'A';
else kstring[i] = t + '0';
dnum /= k;
}
if(sign) kstring[i++] = '-';
kstring[i] = '\0';
for(j = 0; j < i/2; ++j) {
t = kstring[j];
kstring[j] = kstring[i - 1 - j];
kstring[i - 1 - j] = t;
}
return kstring;
}
int main(void) {
unsigned a[] = {36,20,54,12,9,89,88,190,127,255,256};
int i,n = sizeof(a)/sizeof(a[0]);
char s[201];
for(i = 0; i < n;++i) printf("%d(10),%s(3)
",a[i],D2K(a[i],3,s));
return 0;
}
(三进制???总感觉你敲错字了,按照你的要求,继续)
代码:
#include <iostream>
using namespace std;
void functionA(int n);
int main()
{
int n = 0;
cout << "请输入:" << endl;
cin >> n;
functionA(n);
return 0;
}
void functionA(int n)
{
int i = 0;
int array[100] = {0};
while (n!=0)
{
array[i++] = n % 3;
n /= 3;
}
for (int j = i-1; j >= 0; --j)
cout << array[j];
}
运行结果:
该数模3,得到的一个数就是三进制的最低位;该数除以3,得到一个商数。
再将该商数一直模3、取商,直到商为0,之前的非0模数就是三进制的最高位。
#include <stdio.h>
void print3(int n) {
if (n == 0)
return;
print3(n / 3);
putchar("0123456789"[n % 3]);
}
int main(){
int n;
scanf("%d",&n);
print3(n);
return 0;
}
五勉枫蓼: /////////////////////////////////////////// C-Free 4.1// MinGW 3.4.5// veket的小号/////////////////////////////////////////#include <stdio.h> void DecToK(char *dec, char *kser, int k); void reverse(char *s); int main() { char a[1024] = "1234";//十进制数字的字符串 char b[1024];...
北票市18411295393: c语言中怎么转换为三进制 - ?
五勉枫蓼: 转为2进制会吧3进制类似 进行模3取余 然后逆序就可以了 参考代码#include <stdio.h> int main() { int n, l; int v[100]={0}; scanf("%d", &n); l = 0; while(n) { v[l++] = n%3; n/=3; } while(l--) { printf("%d", v[l]); } return 0; }
北票市18411295393: C++数制转换程序 - ?
五勉枫蓼: #include#define N 4 using namespace std; //定义函数 dectoother(),该函数能够将一个十进整数转换成其他进制的数 ,并将结果输出 void dectoother1(float number,int n) { int output[N][8] = {0},mod=0 ; int div=0; unsigned char b[N]={0}; for(int ...
北票市18411295393: 设计C++算法把一个十进制数转化为任意进制数. - ?
五勉枫蓼:[答案] 用除法,余数就是 结果的数字,商继续除法, 很简单的.模仿手工计算办法
北票市18411295393: C++编写一个程序,将用户输入的十进制整数转换成任意进制的数 - ?
五勉枫蓼: 1、首先,定义四个整型变量,保存十进制整数、二进制整数等计算值. 2、给变量i和二进制数赋初值,值为0. 3、接着,输入一个十进制整数. 4、用while语句判断,条件为十进制数是否为零. 5、当十进制数不为零时,对十进制数用2求余,保存在变量d中. 6、十进制数除以2,使数值缩小为原来的二分之一. 7、输出十进制数所对应的二进制数. 8、运行程序,输入任意一个十进制整数,计算机就会输出对应的二进制数.
北票市18411295393: 在C++中将一个十进制数转化为任意进制的程序?
五勉枫蓼: 源程序如下: #include<iostream>//我这个程序只针对2~16进制的转换,因为最普及 using namespace std; char str[17]={"0123456789ABCDEF"};//为了使程序简化而提前定义将会输出的数字 int main() { int s,t; //s为要输入的十进制数,t为要...
北票市18411295393: 如何利用C++互相转换10(0~9)进制和36进制(0~9,A~Z)?请给出代码. - ?
五勉枫蓼: #include #include #include char exchange(int s)//将十进制转换成的36进制对应的数字换成字母 { char ch; if(s>9)//将大于10的数字换成相应的字母 ch=char('a'+s-10); else ch = char(s+'0');//小于10的数字保持不变 return ch; } int exchangealph(char s...
北票市18411295393: 在c++中编写一个程序实现进制转换. - ?
五勉枫蓼: #include #include #include char* DtoAn(double Res, char *Des, int DesType, int Precision) { inti_integer; doubled_decimal; charc_integer[1000], c_decimal[1000], idx= 1; strcpy(Des, ""); if(Res < 0) { Res= -Res; strcpy(Des, "-"); } i_integer= int(...
北票市18411295393: 用C++编程实现十进制与八进制的转换 - ?
五勉枫蓼: #includeusing namespace std; int ConvertNumber(int x,int n,int m) { int y,z,nn; y=0; nn=1; while ( x ) { y+=x%10*nn; x/=10; nn*=n; } z=0; nn=1; while ( y ) { z+=y%m*nn; y/=m; nn*=10; } return z; } void main() { int x,y; cin>>x; y=ConvertNumber(x,10,8); cout< >x; y=ConvertNumber(x,8,10); cout<<}
北票市18411295393: c++进制转换 - ?
五勉枫蓼: 十进制变二进制除2倒取余数,然后二进制变八进制,在变十六进制.