Fortran Coder

查看: 431|回复: 5

[输入输出] 输出杨辉三角

[复制链接]

4

帖子

1

主题

0

精华

入门

F 币
35 元
贡献
25 点

规矩勋章

发表于 2018-6-6 11:13:55 | 显示全部楼层 |阅读模式
很简的一个程序
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


加上之后就变正常了  ,这是为啥呢?


回复

使用道具 举报

4

帖子

1

主题

0

精华

入门

F 币
35 元
贡献
25 点

规矩勋章

 楼主| 发表于 2018-6-6 11:14:27 | 显示全部楼层
坐等大佬
回复

使用道具 举报

21

帖子

0

主题

0

精华

熟手

F 币
182 元
贡献
79 点

规矩勋章元老勋章新人勋章

发表于 2018-6-6 11:22:51 | 显示全部楼层
do j=2,i-1
不是
do j=2,j-1
天之道,损有余而补不足

4

帖子

1

主题

0

精华

入门

F 币
35 元
贡献
25 点

规矩勋章

 楼主| 发表于 2018-6-6 11:34:19 | 显示全部楼层
真的诶,谢谢大佬
    不过还有一个问题,上面写错的话 那为啥把红色部分加上之后下面的输出就正常了呢?
     杨辉三角形打印如下
     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   84  126  126   84   36    9    1
请按任意键继续. . .

21

帖子

0

主题

0

精华

熟手

F 币
182 元
贡献
79 点

规矩勋章元老勋章新人勋章

发表于 2018-6-6 11:41:05 | 显示全部楼层
因为红色代码对 j 取了值呀
天之道,损有余而补不足

285

帖子

1

主题

0

精华

宗师

F 币
1572 元
贡献
1053 点
发表于 2018-6-7 10:14:32 | 显示全部楼层
本帖最后由 li913 于 2018-6-7 10:18 编辑

[Fortran] 纯文本查看 复制代码
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  
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

QQ|捐赠本站|Archiver|关于我们 About Us|群聊|Fcode

GMT+8, 2018-12-17 10:13

Powered by Discuz! X3.2

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表