2016 - 2024

感恩一路有你

c语言输出结果一直是0 c语言结果总是为0,为什么?

浏览量:5531 时间:2021-03-12 16:18:46 作者:admin

c语言结果总是为0,为什么?

C语言运行结果总是0的原因很多。

让我们先谈谈C语言的常识。C语言对变量的类型有严格的要求。对子例程的返回类型也有许多要求。如果变量的定义和传递中存在错误,则直接返回值为0。

举几个例子。

1,长浮点到整数的转换

int a;

double B=0.42586

a=(int)B;

printf(“a=d%”,a)

输出a=0

2,强制整数函数int

float f=0.786

int(f)值为0

所有这些。

发现一个C语言BUG,定义int变量时靠近char的变量会变成0,是什么原因?

许多开发人员都有过这种经历。当他们被一些奇怪的问题弄得精疲力尽时,他们开始怀疑开发环境、编译器、运行时,甚至生命周期。是的,我也遇到过,但是我最终发现开发环境、编译器、运行时都有漏洞,中奖概率太低,比中奖概率低。问题还是我们自己的,但定位问题的过程比较曲折。

在这种情况下,变量的值是不确定的。它可以是任意值或0。

2. 变量在某个时间会被其他地方修改,例如通过指针修改,或者在调用函数时通过引用修改。这两种方法在代码级别可能不是很直观,很容易被忽略。

所以受试者可以根据我说的情况来分析定位问题。

字符的话输出为0,数字输出为1,用c语言表示?

因为您的子例程int是整数(char*STR)

只确定开头的第一个字符是否是数字。如果是数字,则返回1,而不是0。

如果第一个字符是减号,请判断第二个字符。如果第二个字符是数字,则返回1,而不是数字,返回0。

因此输入12123wew,根据上述原则,第一个字符是一个数字,因此返回1。

如果修改为:

If(STR[0]=“-”)STR

for(I=0str[I]!=“0”I)f(!IsDigit(STR[i])返回0

返回1

,然后判断整个字符串,只有当它是所有数字时才返回0。

c语言输出结果一直是0 c语言判断素数 c语言输出为0怎么回事

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。