为什么for循环里的定义会影响后面的for循环啊

在第一个for循环里定义的k为double型,如果我在下面每一个for循环里都定义一边会报错,如果我只留第一个double定义却能得到正确答案,这是为什么啊,不是说for循环里的定义的变量是局部变量么?
![图片说明](https://img-ask.csdn.net/upload/201811/06/1541433858_984666.png)图片说明

不同的编译器对于循环变量的定义不同,vc++ 6.0是20年前的古董了,对c++标准支持并不好。

在vc++ 2010上就可以编译
图片说明