1. 首页 > 科技

C语言编程这道题我输出是0……感觉好像没毛病呀? c语言输出结果一直是0

C语言编程这道题我输出是0……感觉好像没毛病呀?c语言输出结果一直是0

这道C语言题目的输出结果为什么是0?

共同体中r的大小是8个字节,一个int型对象4个字节,一个char对象一个字节

且,该共同体中,字符数组c和int型数组i的第一个元素拥有相同的地址

s->i[0]=0x39;//对int数组的第一个元素赋值

int是4个字节,所以第一个字节是39H,第二个字节是0,第三个字节是0,第四个字节是0

s->i[1]=0x38;//对数组i的第二个元素赋值

同样,第五个字节是38H,第六个字节是0,第七个字节是0,第八个字节是0

printf("%x\n",s->c[1]);//输出的是第二个字节的内容,自然是0

C语言编程设计过程中输出结果总为0,这是为什么?

x是double,要用%lf输入,而不是ld

#include<stdio.h>

#include<math.h>

int main (void)

{

    double x,y;

    printf ("Enter x:");

    scanf ("%lf",&x);//%lf

    if (x<0){

        y=pow(x,5)+2*x+1/x;

    }

    else {

        y=sqrt(x);

    } 

    printf ("y=%lf\n",y);

    return 0;

}

问什么这个C语言程序输出的是 0,0 ,不是 0,1 ?

1、&&是逻辑运算符,所以k的结果只能是0,1。

2、同理<是逻辑运算符,n=b<a 结果也只能是0或1。因为a=1,b=2 b<a不满足,所以n=0。

3、&&是逻辑运算符,计算是从左到右,因为&&运算的性质,只要有一方是0,结果就是0,所以算出n=0时,k结果已经确定是0,逻辑判断已经完成,c语言不会继续执行m=a<b。

所以m仍然是初始化的值0。

这个C语言程序为什么会输出 0

c的值为1.5,如果对应%f输出,则输出1.5,对应%d输出,则按整型数输出。

但c是按浮点型存储的,即1.5 = 0.75 * 2,存储时,只存储尾码0.75(二进制为0.11)和阶码1(二进制为1)即可,占8个字节,按int型输出时,只取前4个字节。

double浮点数占8字节,64位,int数占4字节,32位。

double浮点数从高到低位分别存储符号位(1位)、指数部分(11位)和小数部分(52位)

1.5的浮点存储格式为:

0 000 0000 0001 011(后面49个0)

符号位(0表示正数) 指数部分(1) 小数部分(0.75)

按整型数输出时,取低32位(全0):

即输出0。