fortran怎么输出多个字符?输出九九乘法表
fortran怎么输出多个字符?输出九九乘法表end doend ifdo i=1 n 1if(mod(i 2)==0)thensum=sum i
今天的作业是输出九九乘法表,相信学过编程的朋友们都做过这样的作业,这道题的主要目的是掌握双循环和输出格式。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我也是初学,好久不写代码了,欢迎朋友们指正。