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);
我正在尝试编写一个 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);