用fortran写出99乘法表并打印在date.txt

请问如何用fortran写出99乘法表并打印在date.txt.文件中


c++实现
void fun()
{
    std::ofstream of;
    of.open("./data.txt", std::ios::out);
    for (int i = 1; i <= 9; i++)
    {
        for (int j = 1; j <= i; j++)
        {
            std::cout << j << "*" << i << "=" << i * j << "\t";
            int value = i * j;
            of << j << "*" << i << "=" << value << "\t";
        }
        std::cout << std::endl;
        of<<std::endl;
    }
    of.close();
}

img

program multiplication_table

   integer :: i, j

   open(10, file="date.txt", status="replace")

   do i = 1, 9
      do j = 1, 9
         write(10, "(I2)", advance="no") i*j
         if (j == 9) then
            write(10, *)
         end if
      end do
   end do

   close(10)

end program multiplication_table

program multiplication_table
    implicit none

    integer :: i, j, res
    open(10, file='date.txt', status='replace')

    do i = 1, 9
        do j = 1, i
            res = i * j
            write(10, '(I1, A, I1, A, I2, A)', advance='no') j, ' x ', i, ' = ', res
        end do
        write(10, *)
    end do

    close(10)
end program multiplication_table

使用了一个嵌套循环来计算九九乘法表,并使用文件 I/O 将结果写入到 date.txt 文件中。
在循环中,先用两重循环遍历所有的乘积,并计算出乘积的值。然后使用 write 函数将每一行乘积的结果写入到文件中。
在 Fortran 中,字符串不能直接拼接,因此需要使用格式化输出将数字和字符串拼接起来。在 write 函数中,使用了如下的格式化字符串:

'(I1, A, I1, A, I2, A)'

其中,I1、I2 分别表示整数占据的位数为 1 和 2,A 表示字符型变量。advance='no' 参数用于保证每行乘积的结果不会换行输出。

最后,使用 close 函数关闭文件句柄,完成文件操作。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^