C语言使用迭代求将一个数从10进制转化为7进制
#include <stdio.h>
#include<math.h>
//迭代技术(8bits)
double trans(int a);
int main()
{
printf("Please input a 十进制整数");
int i,k;//i为十进制,k为七进制;
scanf("%d",&i);
trans(i);
printf("%d的七进制表示为%lf",i,trans(i));
getchar();
return 0;
}
double trans(int a)
{
int n = 8;
for(n=8;n>=0;n--)
{
int j=pow(7,n);
if(a/j>=1)
{
int z = a/j;
printf("%d",z);
a = a - z*j;
}
else
{
printf("0");
}
}
}
结果就是输出有问题,无论输入什么输出结果都是0,并且我设置的输出为8bit位,他只有7位
在我定义的函数区,我意思 20/7不能显示小数位,所以直接 用20/7表示整数
我想要的结果:
输入20
输出00000076