输出杨辉三角
很简的一个程序parameter (n=10)
integer a(n,n)
do i=1,n
a(i,1)=1
a(i,i)=1
enddo
do i=1,n
print 100, (a(i,j),j=1,i)
enddo
do i=3, n
do j=2,j-1
a(i,j)=a(i-1,j-1)+a(i-1,j)
enddo
enddo
print *, "杨辉三角形打印如下"
do i=1,n
print 100, (a(i,j),j=1,i)
enddo
100 format (1x, 10i5)
end
把上面红色部分的删掉之后 输出就变成了
杨辉三角形打印如下
1
1 1
1 0 1
1 0 0 1
1 0 0 0 1
1 0 0 0 0 1
1 0 0 0 0 0 1
1 0 0 0 0 0 0 1
1 0 0 0 0 0 0 0 1
1 0 0 0 0 0 0 0 0 1
加上之后就变正常了,这是为啥呢?
坐等大佬:-lol do j=2,i-1
不是
do j=2,j-1 真的诶,谢谢大佬
不过还有一个问题,上面写错的话 那为啥把红色部分加上之后下面的输出就正常了呢?
杨辉三角形打印如下
1
1 1
1 0 1
1 0 0 1
1 0 0 0 1
1 0 0 0 0 1
1 0 0 0 0 0 1
1 0 0 0 0 0 0 1
1 0 0 0 0 0 0 0 1
1 0 0 0 0 0 0 0 0 1
杨辉三角形打印如下
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84126126 84 36 9 1
请按任意键继续. . . 因为红色代码对 j 取了值呀 本帖最后由 li913 于 2018-6-7 10:18 编辑
program testinteger,parameter::n=10
integer a(n,n), i, j
!赋初值
a = 0; a(:,1) = 1
write(*,"(i4)") 1
!计算
do i = 2, n
do j = 2, i
a(i,j) = a(i-1,j-1)+a(i-1,j)
end do
write(*,"(*(i4))") a(i,1:i)
end do
end program
页:
[1]