为什么c语言同一个编译器的同一个程序输入的值一样,结果却不一样

#include<stdio.h>int main(){float r,h,l,s,sq,vq,vz;float pi=3.141526;printf("请输入圆半径r,圆柱高h:");scanf("%f,%f",&r,&h);l=2*pi*r;s=r*r*pi;sq=4*pi*r*r;

vq=4.0/3.0*pi*r*r*r; vz=pi*r*r*h;printf("圆周长为:l=%6.2f\n",l);printf("圆面积为:s=%6.2f\n",s);printf("圆球表面积为:sq=%6.2f\n",sq);printf("圆球体积为:vq=%6.2f\n",vq);printf("圆柱体积为:vz=%6.2f\n",vz);return 0;}
,同样输入1.5,3,有时候vz=21.21有时候就这样等于0.00.而且我根本控制不了。刚学C语言,求解,谢谢了

第1个回答  推荐于2018-04-30
有如下几种可能:
1 代码运行的平台硬件不同。
不同的CPU,如嵌入式CPU,intel CPU,以及IBM的CPU,在硬件最底层就是不同的,而C语言是一门和底层相关性极大的语言,在不同的硬件上运行出不同结果是很正常的。

2 代码运行的系统不同。
相同CPU在不同操作系统上跑相同代码时,一样会出现不同的结果。这是由于系统底层的实现不同造成的。比如Linux和Windows,在底层处理上就有一定的差异。

3 编译器不同,同时代码中使用了C规范未定义规则的语句。
C语言规范并没有对C语言的所有行为做定义,所以相同语句,不同编译器的运行效果可能有所不同。比如同样的sizeof(int),在16位编译器上结果为2,而32位编译器上就会是4。

4 代码获取到的外部数据不同。
比如运行代码时获取到的其它输入不同,包括程序中获取的环境变量,实时信息,以及各种外部输入等,均有可能出现不同。
比如在做随机数时,如果以当前时间设定随机数种子,由于每次的时间是不同的,同一个程序每次运行的结果都是不同的。本回答被网友采纳

c语言的编译器,打开同一个程序,一样的输入,为什么有时输出是对的,有...
说明你的代码中存在不稳定因素。比如没有赋初始值的局部变量。 越界访问行为等等。这些都是会导致不可预知结果的。具体的 还需要看代码才能知道原因。

C语言同一段代码,同样的文件,编译器为什么运行结果不一样?
一般来说,C语言程序被编译为可执行程序后,每次都输出都是相同的,但有些特殊情况例外,比如,代码中引入了随机变量,并让它出现在输出结果中。

为什么代码一样但是结果不一样?
因为你的C语言程序中case0:到case12:,case和数字间缺少了一个空格,所以虽然c==1但是程序却执行了第一个case0:语句d=0就退出了switch语句,而不是执行第二个case 1:语句d=2退出switch语句.因此你的结果是600000.00,而不是书上的结果588000.00 完整的C语言程序如下(改动的地方见注释)include<stdio...

...编一个C程序,(可确保完全一致),为什么结果不一样呢?
1) 不同的编译器可能会对相同的C语言程序进行稍微不同的处理,生成有差异的可执行代码,这可能会导致执行的结果不一样。2) 不同的电脑,其硬件底层是有差异的,这也可能导致高级语言编写的程序在不同的计算机上会执行处不同的结果。你看看你们是不是用的不同的编译器,或者不同牌子的电脑。

同一段代码vc编译正常执行,而g++无法输入测试数据是为什么?_百度...
2 代码运行的系统不同。相同CPU在不同操作系统上跑相同代码时,一样会出现不同的结果。这是由于系统底层的实现不同造成的。比如Linux和Windows,在底层处理上就有一定的差异。3 编译器不同,同时代码中使用了C规范未定义规则的语句。C语言规范并没有对C语言的所有行为做定义,所以相同语句,不同编译器...

用C语言编程程序没有错误为什么结果不对
1,保存为c或c++文件 2,根据断点调试找到错误处。3,采用F10或F11单步调试找到精确的错误处。其中f10是跳过函数盗用,f11是进入函数体调试。一般是先用f10,确定函数输入输出是否正确(与自己想的一样),如不一样,则用f11进入函数体一步一步调试。4,在调试过程中,肯定得监视程序中的变量。在vc6...

C语言浮点运算感觉很奇怪同样的数,算出来结果却不一样,这是怎么...
double是64位,无论如何精度都是有限的,因此也会存在误差,1.1*100时编译器会将表达式先转换二进制并运算运算,运算后再编码存储到变量中或临时变量中,而运算是由CPU直接处理的,因此你可以看到有个0.000002的误差数,而printf是个函数,对误差进行了修正。PS:简单了解下浮点数的编码方式网页链接 ...

...程序 编译通过 也是正确的 但是运行的结果却不是正确的 我用的是V...
没语法错误,有逻辑错误,特别是指针容易用错。

为什么c语言,有时候所有代码都正确,却运行不出来和别人一样的结果?
因为原因有二,其一:你的代码跟别人的代码不一样也会有很大差别,比如你的是a++,别人的是++a。其二:编译器的不同也会出现这种情况,比如你用的编译器是VS2019,而别人用的则是DV C++

为什么同样的程序vc ++和tc++运行的结果不一样
结果不一样很正常 C语言某些问题在ANSI C中并没有明确规定 因此各个编译器都有不同的编译方法 课本上一般都以TC的结果为正确答案

相似回答