-1 c
我对编码很陌生。这是我编写的一个程序,用于将十进制转换为二进制,但有一个问题我得到的结果是相反的
示例:122
is 的二进制,1111010
我正在获取 output 0101111
。
谁能告诉我是否可以在我的代码中反转输出?或者我可以在以下进行哪些更改以获得正确的输出?
#include<stdio.h>
int main()
{
int n, q, r;
printf("Enter the decimal Number : ");
scanf("%d", &n);
int num=n;
while(n!=0)
{
r=n%2;
q=n/2;
printf("%d", r);
n=q;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
似乎您是编码新手。问题出在这里并不重要。
十进制转二进制是这样的
例如:
除以 2 | 商 | 提醒 | 少量 |
---|---|---|---|
10/2 | 5 | 0 | 0 |
5/2 | 2 | 1 | 1 |
2/2 | 1 | 0 | 2 |
1/2 | 0 | 1 | 3 |
=(1010)
所以输出应该从提醒栏的底部到顶部有数字。您的输出是从上到下打印的。
请参阅下面的代码,您需要一个数组来存储提醒并以相反的顺序打印数组,以便获得所需的输出
#include<stdio.h>
#include<stdlib.h>
int main(void){
int a[10],n,i;
printf("Enter the decimal Number : ");
scanf("%d",&n);
for(i=0;n>0;i++)
{
a[i]=n%2;
n=n/2;
}
printf("\nBinary of Given Number is=");
for(i=i-1;i>=0;i--)
{
printf("%d",a[i]);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)