C语言求教,进制转换代码
毕业设计
1
请大家帮我看看我的程序有什么错误,感激不尽!
/*
num:数字 i:进制数 k:总位数
*/
#include"stdio.h"
#include"math.h"
int firsttext(int num,int i){
int k;
for(k=1;;k++){
if(num<((int)pow((float)i,(float)k)))
break;
}
--k;
return k;
}
int printoutevery(int num,int i,int k){
int a;
if(k=0)
{return 0;}
for(a=1;;a++){
if(num<((int)pow((float)i,(float)k)))
break;
}
a--;k--;
num-=(int)pow((float)i,(float)a);
if(a<10)
printf("%d",a);
else printf("%c",a+55);
printoutevery(num,i,k);
}
int main(){
int num,i,k;
printf("请输入待处理数(十进制):");
scanf("%d",&num);
printf("请输入您要转换的进制:");
scanf("%d",&i);
k=firsttext(num,i);
printoutevery(num,i,k);
getchar();
return 0;
}
-
/* num:数字 i:进制数 k:总位数 */ #include "stdio.h"#include "math.h"int firsttext(int num, int i) { int k; for (k = 1;; k++) { if (num < ((int) pow((float) i, (float) k))) //i的k次方 break; } //--k; return k; } int printoutevery(int num, int i, int k) { int a; if (0 == k) //注意此处的写法 { return 0; } a = num / (int) pow((float) i, (float)(k - 1)); num -= a * (int) pow((float) i, (float)(k - 1)); k--; if (a < 10) printf("%d", a); else printf("%c", a + 55); printoutevery(num, i, k); } int main() { int num, i, k; printf("Please input num at decimal notation:\n"); scanf("%d", &num); printf("Please input scale you want to convert:\n"); scanf("%d", &i); k = firsttext(num, i); printoutevery(num, i, k); getchar(); return 0; }
-
int printoutevery(int num,int i,int k){ int a; if(k<0) {return 0;} //for(a=1;;a++){ // if(num<((int)pow((float)i,(float)a))) // break; //} a = num / (int)pow((float)i,(float)k); num -= a * (int)pow((float)i,(float)k); k--; if(a<10) printf("%d",a); else printf("%c",a+55); printoutevery(num,i,k); }
-
建议把
include"stdio.h"
include"math.h"
改成
include
include
发表回复