Online Compiler C

#include <stdio.h> #include <math.h> int main() { int a,yushu,an,i,k; scanf("%d",&a); an=0; for(i=0;i<(a/3);i++){ yushu=a%3; a/=3; an=an+yushu*pow(10,i); } while(an>0){ k=an/10; } an=an+a* pow(10,k); printf("%d",an); return 0; }
1) 这段代码尝试将一个十进制整数转换为三进制表示。它通过不断除以3取余数的方式计算,并将余数按位组合成三进制数。

2) 提示:
- 注意循环条件i<(a/3)可能无法处理所有位数,考虑使用while(a>0)更合适
- 最后的while(an>0)循环缺少更新an的语句,会导致无限循环