用fortran找出n行n列组成的二维数组中最大元素和最小元素所在的位置
时间: 2023-02-09 17:49:35 浏览: 166
首先,我们需要在程序中声明一个二维数组:
real,dimension(n,n) :: arr
然后,我们可以使用一个双重循环来遍历数组中的所有元素,并使用一些变量来记录最大元素和最小元素的位置:
real,dimension(n,n) :: arr
integer :: i,j,max_i,max_j,min_i,min_j
max_i = 1
max_j = 1
min_i = 1
min_j = 1
do i = 1,n
do j = 1,n
if (arr(i,j) > arr(max_i,max_j)) then
max_i = i
max_j = j
endif
if (arr(i,j) < arr(min_i,min_j)) then
min_i = i
min_j = j
endif
enddo
enddo
这样,最大元素的位置就存储在变量max_i和max_j中,最小元素的位置就存储在变量min_i和min_j中.
注意:在上面的代码中,我们假设数组中至少有一个元素,并将max_i,max_j,min_i,min_j初始化为1.如果数组为空,则需要使用特殊的初始值来避免错误.
相关问题
用fortran找出N行N列组成的二维数组中最大元素和最小元素所在的位置。
在 Fortran 中,可以使用内置的最大值和最小值函数 `MAXVAL` 和 `MINVAL` 来查找数组中的最大值和最小值。例如,如果要找出二维数组 `a` 中的最大值和最小值,可以使用以下代码:
```fortran
real, dimension(N,N) :: a
real :: maxval, minval
maxval = MAXVAL(a)
minval = MINVAL(a)
```
要找出最大值或最小值所在的位置,可以使用函数 `MAXLOC` 和 `MINLOC`。例如,如果要找出二维数组 `a` 中的最大值的位置,可以使用以下代码:
```fortran
real, dimension(N,N) :: a
integer :: maxloc(2)
maxloc = MAXLOC(a)
```
上述代码将返回一个包含最大值所在的行和列的整数数组,即 `maxloc(1)` 表示最大值所在的行,`maxloc(2)` 表示最大值所在的列。
注意,如果数组中存在多个最大值或最小值,上述函数只会返回其中的一个。如果需要返回所有的最大值或最小值的位置,可以使用函数 `MAXLOCA` 和 `MINLOCA`。
Fortran求二维数组最大值
可以使用以下代码来求二维数组的最大值:
```fortran
program max_2d_array
implicit none
integer :: i, j, n, m, max_val
integer, dimension(100,100) :: a
! 读入矩阵的大小 n 和 m
print *, "请输入矩阵的行数 n 和列数 m:"
read *, n, m
! 读入矩阵元素
print *, "请输入矩阵元素:"
do i = 1, n
do j = 1, m
read *, a(i,j)
end do
end do
! 求最大值
max_val = a(1,1)
do i = 1, n
do j = 1, m
if (a(i,j) > max_val) then
max_val = a(i,j)
end if
end do
end do
! 输出最大值
print *, "矩阵中的最大值为:", max_val
end program max_2d_array
```
其中,`dimension(100,100)` 定义了一个最大为 100 行 100 列的二维数组 `a`,可以根据实际情况进行修改。在程序中,我们首先读入矩阵的大小和元素,并且初始化最大值为第一个元素。然后使用两个嵌套的循环遍历整个矩阵,如果发现当前元素比最大值还要大,就更新最大值。最后输出最大值即可。
阅读全文