今天的作业是输出九九乘法表,相信学过编程的朋友们都做过这样的作业,这道题的主要目的是掌握双循环和输出格式。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我也是初学,好久不写代码了,欢迎朋友们指正。
,