c - 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;
}
解决方案
推荐阅读
- javascript - 如何通过将函数作为道具传递给其子级来更新父级的状态
- regex - Assert length within a regex match
- python - 两个数据结构在 python 中共享一个迭代器
- python - PyCares - Fatal Python error: PyImport_GetModuleDict: no module dictionary
- html - 如何使用 css 网格使主要内容 div 随内容扩展?
- javascript - 在 ReactJS 中获取状态中的搜索值
- bash - parse .csv data into matrix or 2 dimensional array bash/shell awk
- r - 按因子和持续时间划分的分面网格
- pandas - Group dataframe by rows and compare values
- r - R function works but not when I try to map a vector to it