gpt4 book ai didi

C: 用 == 扫描

转载 作者:行者123 更新时间:2023-12-02 08:45:06 26 4
gpt4 key购买 nike

我看到了这段代码。我是 C 语言的新手,所以请原谅。

while下面的循环将继续循环 if i < SIZE && scanf("%f",&Arr[i]) == 1 .

我得到 i < SIZE部分但是scanf("%f",&Arr[i]) == 1是什么意思是?我知道它正在接受 scanf() 的值(value)并将其分配给数组 Arr .但是 == 1 是什么意思?是什么意思?

谢谢:)

int readValue(float Arr[]) {
int i = 0 ;
while (i < SIZE && scanf("%f",&Arr[i]) == 1)
i++ ;
return i ;
}

最佳答案

如果这里有更多的括号来帮助记住,可能会更清楚 Operator Precedence :

while (i < SIZE && scanf("%f",&Arr[i]) == 1)

相同
while ((i < SIZE) && (scanf("%f", &Arr[i]) == 1))

因此,如果 i 恰好是 >= SIZE,则 == 是无关紧要的,因为它根本不会被执行。如果 i 小于 SIZE 那么 scanf()将被调用并返回成功填充的参数列表的项目数。因此,在您的情况下,如果这是 1(如果我们得到一个 float 并将其放入 Arr[i]),则满足条件。

因此您将循环直到 i 大于或等于 SIZE 或者如果在 scanf() 中输入了无效条目/p>

例如,如果您输入字母“h”,您的循环将中断,因为它不能进入​​ float 指定符,因此 scanf() 将返回 0。

关于C: 用 == 扫描,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13069167/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com