C程序无法同时执行多个语句

C program fails to execute more than one statement at the same time

我正在尝试编写一个 c 程序,将用户输入的十进制数转换为二进制和八进制数。

假设用户输入了 24,我的输出应该是这样的:
\n十进制的 24 是二进制的 11000。
\n十进制的 24 是八进制的 30。\n

但是终端只进行十进制到二进制的转换。 因此,我当前的输出如下所示: \n十进制的 24 是二进制的 11000。
\n十进制中的 0 是八进制中的 0。\n

这是有问题的代码。对于上下文,这两个转换是由两个不同的人编写的:

#include <stdlib.h>

int main()
{
            int a[10], input, i;  //variables for binary and the user input
            int oct = 0, rem = 0, place = 1; //variables for octal
            printf("Enter a number in decimal: ");
            scanf("%d", &input);

//decimal to binary conversion            
            printf("\n%d in Decimal is ", input);
            for(i=0; input>0;i++)
                {
                    a[i]=input%2;
                    input=input/2;
                }
            for(i=i-1;i>=0;i--)    
            {printf("%d",a[i]);}

//decimal to octal conversion
            printf("\n%d in Decimal is ", input);
            while (input)
            {rem = input % 8;
            oct = oct + rem * place;
            input = input / 8;
            place = place * 10;}
            printf("%d in Octal.", oct);

        }

八进制转换仅在我删除十进制到二进制部分时执行。但是我想让它们同时执行。

你的第一个 for 循环操作输入变量,因此它的值在二进制转换后始终为 0。将您的代码更改为类似这样的内容,使用附加变量对以下内容进行计算:

printf("\n%d in Decimal is ", input);
int temp = input;
for(i=0; temp>0;i++)
{
     a[i]=temp%2;
     temp=temp/2;
}
for(i=i-1;i>=0;i--)    
{
    printf("%d",a[i]);
}

//decimal to octal conversion
printf("\n%d in Decimal is ", input);
temp = input;
while (temp)
{
    rem = temp% 8;
    oct = oct + rem * place;
    temp = temp / 8;
    place = place * 10;
}
printf("%d in Octal.", oct);