/********程序功能*********/
/********输入某十进制整数,将其转换为二进制数并输出在屏幕上*********/
#include "stdio.h"
main()
{
int k=0;
int x, r,b[99],d[99],p,q;
int m,n,j;
int c[99],i,s;
printf("please input a single number:\n");
scanf("%d",&x);
do
{
r=x%2;
b[k++]=r;
x/=2;
}while(x);
p=0;
q=k-1;
for(;p<k;p++,q--)
d[q]=b[p];
for(p=0;p<k;p++)
b[p]=d[p];
m=k%4;
n=4-m;
j=k+n;
for(i=0;i<n;i++)
c[i]=0;
for(s=0;i<j;i++,s++)
c[i]=b[s];
for(i=0;i<j;i++)
{if((i+1)%4==0)
printf("\b");
printf("%c",c[i]);}
printf("\n");
}
对是对了,但我想要的输出形式是每4个二进制位中间用空格隔开高位不足补零。总之还是谢谢你
追答你那样也简单,在第二个for循环之前算出 k%4,然后相应地补0。中间空格隔开的问题,在第二个for循环内加上检测k%4是否等于0,如果等于则输出一个空格即可。代码很简单,自己写吧。
参考资料:自己写的
c语言问题为啥没错误却运行结果与预计不相符
其实,十进制整数转二进制最简单的办法我觉得是利用移位操作,和按位与,因为数据在计算机里是二进制的形式。当然,如果是大数的问题就不好这样做,我觉得还是写个通用的函数方便点,然后递归,迭代,都可以。看你的输入应该不是大数。然后,看你复杂的for循环处理我看了半天感觉是想要处理输出格式。话说...
我的c语言程序没有报错为什么会执行不了?
在C语言中,程序没有报错并不意味着程序一定是正确的。有时候,程序可能会出现逻辑错误或者运行时错误,导致程序无法执行或者输出不符合预期。以下是一些常见的导致程序无法执行的原因:1. 程序陷入死循环:程序在某个地方出现了死循环,使得程序无法继续向下执行。如果程序似乎无法结束,可以检查程序是否存在...
用C语言编程程序没有错误为什么结果不对
没发现他的错误而已,而既然运行结果是错误的,那就是说明一点 可能是你的算法设计的不当,不能正确的解决问题,这样发生的错误 是运行期错误,在编译连接的过程不会出错的,不过幸好,编译器也为我们 提供了一些解决类似运行期错误的一些调试工具,通过debug,进行单步调 试下,观察变量值,看看是不是你想要的...
为什么 程序 编译通过 也是正确的 但是运行的结果却不是正确的 我用...
没语法错误,有逻辑错误,特别是指针容易用错。
为什么我写的c语言在编译后没错误,没警告,但是运行时却没结果。
楼主,你好!编译没有错误只能说明没有语法错误,并不能说明代码的逻辑没有错!因为编辑器主要是根据C语言的语法来检查你的代码有没有错!
c语言没有显示出错,为什么运行结果不正确呢?求高手解答
首先,读入字符串的方法是 scanf("%s",a);其次,字符串不能用==来比较,需要用strcmp(a,"yes")== 0来判断 再次,字符串不可能既等于 "or"又等于 "yes or no"的
为什么编写的c语言程序运行出来的结果都不符合实际的运算啊?
scanf("%d,%d,&a,&b");这句有语义错误,语法上没有错误 运行完这句以后,实际还是没有给a和b赋值,a和b的值是未知的,然后计算sum=a+b;的时候,用的值是a和b的地址里面之前有的值 scanf("%d%d",&a,&b)这么写就可以了 输入 15 20 如果写成scanf("%d,%d",&a,&b)那么就要输入15,...
C语言代码没有编译没有错误,但在运行程序看结果,结果却显示不全
输出性别那行的 格式 应当用 %c 。你用了 %s, 因 printf() 找不到 '\\0', 输出流就乱了。
为什么c语言运行结果对但是又显示有错
请把错误信息发上来啊。结果对说明你的计算过程是对的,但程序报错,很可能是语句使用格式不正确,但不影响计算。并不是所有错误都会中止计算
c语言程序显示没有问题但运行结果是空白的?
您好,很高兴回答您的问题。在c语言中,程序的错误分成两种,一种是语法错误,程序在进行运行过程中会检测出来,并且给出错误的大致位置和原因,另一种错误是逻辑错误,说通俗点就是程序没有语法错误,但是程序内部出现了不符合题目本意的错误,导致不能得出正确结果,这种误是没有提示的,要编写者自己去...