我使用 do while 循环编写代码,该循环采用正整数 n,然后显示该整数的八进制表示的多项式。使用连续除法,如课程中的二进制转换示例所示。例如,对于 n = 157,程序应输出以下内容:
157 = + (5 * 8^0) + (3 * 8^1) + (2 * 8^2)
当这部分工作正常时,用一个循环“包围”这段代码,从用户那里获取 n 的值,当值为负时退出循环。我用了 ” a" 变量表示余数,"i" 表示 8 的幂,但是在进行嵌套循环时,我没有重复输入 n。请帮助 我的代码是
#include <stdio.h>
#include <math.h>
int main()
{
setvbuf(stdout, NULL,_IONBF,0 );
int n, i = 0, a;
do
{
printf("enter the value of n");
scanf("%i \n", &n);
do
{
a = n % 8;
n /= 8;
printf("+(%i *8^ %i)", a, i);
i++;
} while (n >= 1);
}while(n>0);
return 0;
}