首页 > 解决方案 > DO-While 嵌套循环

问题描述

我使用 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;
}

标签: cloopsdo-while

解决方案


推荐阅读