掠影一:
#include<stdio.h>
int main()
{
int a = 2;
float b;
b = (float)(1 / a);
printf("%f", b);
return 0;
}
这段代码的输出结果是0.000000,而不是预期的0.500000。
这是因为在C语言中,当整数相除时,结果也是整数,会向下取整。所以1/a的结果是0,然后再强制类型转换成浮点数,得到的结果就是0.0。
解决该问题的方法是将1改为1.0,这样就会将1.0和a做除法运算,得到一个浮点数0.5,然后再进行赋值操作。
修改后的代码如下:
#include<stdio.h>
int main()
{
int a = 2;
float b;
b = 1.0 / a;
printf("%f", b);
return 0;
}
输出结果为0.500000。
掠影二:
int a[] = {-2, -3, 4, -1, -2, 1, 5, -3};
int n = sizeof(a)/sizeof(a[0]);
这种方法是一种常见且方便的手段,用于在不需要显式指定元素数量的情况下确定数组的长度。这对于编写更通用和可复用的代码非常有帮助,因为它允许代码适应数组大小的变化而无需任何修改。