《C语言程序设计现代方法》习题疑惑

《C语言程序设计现代方法》习题中有关单位数组初始化问题。(单位矩阵在主对角线上的
值为1,而其他地方的值为0,其中主对角线上行、列的索引值是完全相同的。)
题目要求采用一个指针来逐个访问数组中的元素,且每次一个元素。

程序及运行结果如下图:
图片说明

程序与书中给的标准答案完全一样,不知为何运行完后,所有元素都被初始化成了0。

为了检验结果,我将程序中初始化为0的地方改成了初始化为2.0,然后重新运行程序如下图:
图片说明

结果所有结果还是被初始化成了0。似乎初始化的结果与程序的内容无关。

大神能否看看程序中什么地方出了问题?

double类型的,用%d打印?

浮点数的相等比较忌讳直接用==,而应该采用两个数字相减,绝对值小于一个极小的数的方式比较,因为浮点数是有误差的。0.9999999和1比就不等了。