- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
一个 friend 给了我一个谜语:
#include<stdio.h>
#define TOTAL_ELEMENTS ((sizeof(array) / sizeof(array[0])))
int array[] = {23,34,12,17,204,99,16};
int main()
{
int d;
for(d=-1;d <= (TOTAL_ELEMENTS-2);d++)
printf("%d\n",array[d+1]);
getchar();
return 0;
}
上面的代码应该打印所有的数组元素,代码中有什么问题(输出什么也没有)?我认为循环甚至不会迭代一次?
我发现以下代码确实有效:
#include<stdio.h>
#define TOTAL_ELEMENTS ((sizeof(array) / sizeof(array[0])))
int array[] = {23,34,12,17,204,99,16};
int main()
{
int d;
int x = (TOTAL_ELEMENTS-2);
for(d=-1;d <= x;d++)
printf("%d\n",array[d+1]);
getchar();
return 0;
}
我有一个理论认为它与宏有关,但我不能指出这个问题。
最佳答案
问题是 (TOTAL_ELEMENTS-2)
是一个无符号值。当你进行比较时d <= (TOTAL_ELEMENTS-2)
, 两个值都转换为无符号值,结果为 false。
在你的第二个例子中,x
已签名,所以没有问题。
关于c - 谜语(C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5611724/
我有以下代码: $value){ if($value == 1){ echo "{$key}, "; } } ?> 如您所见,我用 500 个零填充一个数组,遍历它两
一个 friend 给了我一个谜语: #include #define TOTAL_ELEMENTS ((sizeof(array) / sizeof(array[0]))) int array[
这几天,我一直克制自己的硕士学习,一直专注于这个(看似简单的)难题: 这个 10*10 的网格构成了一个包含 100 个可用地点的正方形。目的是从一个角落开始,根据一些简单的“遍历规则”遍历所有地方,
我正在努力解决这个问题MaxMirror在 CodingBat 上: We'll say that a "mirror" section in an array is a group of conti
有一个矩阵M*N。矩阵元素为黑色或白色。我们将相同颜色的相邻元素称为区域。您可以选择任何区域并翻转它的颜色(即改变所有元素的颜色)。给定这样一个矩阵,找到使整个矩阵变成黑色或白色所需的最小翻转次数。
从三个变量开始,都是System.DateTime。 a: 10/2/2009 2:30:00 PM b: 10/2/2009 2:30:00 PM c: 10/2/2009 2:30:00 PM 相
第一部分:从F#调用F# 假设我们在 F# 中定义了以下类型: type MyClass = static member Overload1 (x, y) = "Pim" static
(不,这不是家庭作业,我只是发现了这个错误并认为在这里分享它可能会有用) import java.util.List; public class BubbleSorter { public >
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我是一名优秀的程序员,十分优秀!