gpt4 book ai didi

c - 比较 int 与 char 时,C 中的简单 'if' 语句未按预期执行

转载 作者:行者123 更新时间:2023-11-30 20:50:22 24 4
gpt4 key购买 nike

我是 C 语言新手,并且被困在一些必须非常基本的东西上。

我有 2 个字符数组,正在计算“if”语句中数组元素之间的绝对差。但是,“if”语句没有按照我的预期进行评估。我得到的打印值的差异不大于 1。

这与ABS函数返回一个int然后与一个char进行比较有关吗?

有什么建议吗?

if(abs(arr1[i] - arr2[i]) > '1')
printf("%c ", arr1[i]);
printf("%c ", arr2[i]);
printf("%d diff\n", abs(arr1[i] - arr2t[i]));

最佳答案

“1”与 1 不同。“1”相当于 ASCII 表中的数字 49。

因此,请根据您的情况与整数 1 进行比较

if(abs(arr1[i] - arr2[i]) > 1)

此外,您的 if block 不包含以下所有行。将需要使 if 条件生效的语句用 {} 括起来。

if(abs(arr1[i] - arr2[i]) > 1)
{//Add braces to enclose multiple statements
printf("%c ", arr1[i]);
printf("%c ", arr2[i]);
printf("%d diff\n", abs(arr1[i] - arr2[i]));// arr2t[i] -> arr2[i] seems to be a typo
}

关于c - 比较 int 与 char 时,C 中的简单 'if' 语句未按预期执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46253181/

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