请问如何用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();
}
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 函数关闭文件句柄,完成文件操作。
不知道你这个问题是否已经解决, 如果还没有解决的话: