本文目录一览:
初学C语言,帮我看看这个输出结果为什么是0?
1、scanf语句错误,应该改为:scanf(“%f%f%f”,&v,&n,&m)才能让系统读入值,否则的话,v,n,m的值都是零,所以最后总和也为0.你可以用一下下面的代码。
2、输出结果是 0 的原因在于:a 是 union 。 union 是“联合体、共用体”,与 stuct 不同,联合体(union)中各变量是“互斥”的。
3、因为p1保存的是k的地址而不是m的地址,即p1等于&k,&k当然不等于&m,所以p1==&m的结果是假(0)。
4、C语言中表示b小于a且大于c不能写成abc。要写bc。按照你的写法abc相当于(ab)c,先看ab得到1,再看1c得到0。所以d是0。
下面的C语言编程结果为什么是0?
1、按照你的写法abc相当于(ab)c,先看ab得到1,再看1c得到0。所以d是0。
2、输出结果是 0 的原因在于:a 是 union 。 union 是“联合体、共用体”,与 stuct 不同,联合体(union)中各变量是“互斥”的。
3、因为变量f的类型是float,所以对应的格式串中应该用%f,这两者必须一致,当这两者不一致时,编译时不会出错,但是输出会是0。
4、其结果当然不同了。char类型与整型数据存储是相同的,它只占一个字节,因此,整型数按char输出你能看到正确结果。所以,你只要改成int x,y;你的程序就是对的。float就是你想不明白的输出结果了。
5、结果是0。因为static int a[8][8]被初始化为全零二维数组。而你下面的代码只对a[0][0]、a[0][1]、a[0][2]、a[1][0]、a[1][1]、a[1][2]、a[2][0]、a[2][1]、a[2][2]赋值。
6、类型不匹配。%d是取int型数字,通常都是4个字节。float一般都是8个字节。所以用%d打印的话只会取其前四个字节。按照二进制排列顺序,在数字不是特别大得时候,前四个字节都是0.把%d换成%f打印试试。
C语言,为什么运行结果是0呢?
但与其它代码出现在同一语句中时,就有区别了,--y先自减,再取y值参与其它运算 ;y--先取y值参与其它运算,再自减。
在c语言你这里a[n]/(n+1)这里等于0,递归出口返回的是0,0乘以任何数都得0呗。n*fun(n-1)这里也是0。
因为p1保存的是k的地址而不是m的地址,即p1等于&k,&k当然不等于&m,所以p1==&m的结果是假(0)。
因为条件都不满足。if(!a)这里为假,进入 else if(a==0)同样为假if(a) b+=2; else b+=3;这两个是一对的。so,b没有进行任何操作。能看懂代码结构就能知道结果了。这就是一个结构问题。分拿来。
在你将b的值赋值为浮点型的a(b=(float)a;)时,结果其实应该是200。但是由于你并未给b改变类型,所以他还是一个整形,在你结尾时引用lf浮点型的输出方式进行输出时,计算机识别不出来,所以结果为零。
C语言为什么算出来总是0
把 &c改为 c;不然打印出来的就是c的内存地址,然后格式化后就变成0了。
这不是“算出来”的问题,是输出函数printf的控制符用得不合适:%f的作用是按浮点型输出,默认保留6位小数,不足6位的后面用0补齐。
这通常都是输入格式或输出格式不对,或者是变量的数据类型不匹配造成的。程序的要求、输入、输出格式,都要说清楚,才能帮上忙的。
a=1/2×b×n,这个表达式是有问题的,1÷2求商的话,他永远等于零,所以你的结果不管输入什么都是为零的。