sqs 发表于 2022-4-8 14:56:53

if then else 语句报错

如下图,对数组进行赋值的过程当中,为什么该程序会报错呢
programconjgf
    implicit none
    real(8) a(6,6)
    integer i1, i2
    do i1 = 1,6
      do i2 = 1,6
            if (i1=i2) then
                a(i1,i2) = 0.0d0
            else
                a(i1,i2) = i1+i2
            end if
    enddo
enddo
    print*,a
    read(*,*)
end programconjgf
应该如何修改呢

Transpose 发表于 2022-4-8 17:06:45

i1==i2,判断相等

sqs 发表于 2022-4-8 17:29:41

Transpose 发表于 2022-4-8 17:06
i1==i2,判断相等

好的好的,大意了

青衣巷 发表于 2022-4-9 08:27:50

Fortran 是个矢量化的语言,所以它应该比C代码简洁一些。

program conjgf
implicit none
real(8) a(6,6)
integer i1, i2
Forall(i1=1:6,i2=1:6) a(i1,i2)=merge(0,i1+i2,i1==i2)
write(*,'(*(6f7.2,/))') a
read(*,*)
end program conjgf

sqs 发表于 2022-4-9 20:09:34

青衣巷 发表于 2022-4-9 08:27
Fortran 是个矢量化的语言,所以它应该比C代码简洁一些。

program conjgf


受教了!感谢!
页: [1]
查看完整版本: if then else 语句报错