今天的作业是输出九九乘法表,相信学过编程的朋友们都做过这样的作业,这道题的主要目的是掌握双循环和输出格式。C ,C#,Java或者Python语言初学都有这样的练习题。今天我们通过Fortran语言来实现。

解题前先说说上次的思考题:

1,输入一个数,计算所有小于的偶数累加;

sum=0

do i=1,n,1

if(mod(i,2)==0)then

sum=sum i

end if

end do

大多数朋友都是这么做的,没毛病。判断对2取余等于0即是偶数,思路非常正确。但是不是最简便呢?

sum=0

do i=2,n,2 !从2开始,步进2

sum=sum i

end do

这样是不是更简捷,效率更高了。

同理,第二思考题

2,输入一个数,计算所有小于的奇数累加。

sum=0

do i=1,n,1

if(mod(i,2)/=0)then

sum=sum i

end if

end do

可以简化为

sum=0

do i=1,n,2 !注意是从1开始,步进2

sum=sum i

end do

回到本文作业题,代码不截图直接输入。

program test30

implicit none

integer i,j

do i=1,9 !步进1可以省略

do j=1,i

write(*,"(i2,a1,i1,a1,i2)",advance="no")i,"*",j,"=",i*j

end do

write(*,*) !增加空行

end do

pause

stop

end program test30

朋友们看下输出语句

write(*,"(i2,a1,i1,a1,i2)",advance="no")i,"*",j,"=",i*j

这句中”i2“是i的输出格式,整数2位。为什么是2位?是保证前面有一个空格,横向输出不会连在一起。

"a1"输出一位字符*,"i1"输出i一位,”a1“输出=,"i2"输出i*j的值。advance="no"表示不换行,以前的版本有用$符号的,现在的标准是用advance。也可以在输出后加空格,用1x表示。

write(*,"(i1,a1,i1,a1,i2,1x)",advance="no")i,"*",j,"=",i*j

这样也是可以的。

运行后效果是这样的:

fortran求最大值的命令(输出九九乘法表)(1)

Fortran我也是初学,好久不写代码了,欢迎朋友们指正。

fortran求最大值的命令(输出九九乘法表)(2)

,