fortran编了一个两数组相加求和,再求输出数组的最大值的程序,怎么算出来的数字有点问题
programmainreala(3,3),b(3,3),c(3,3)integern,mprint*,'输入m'read*,mprint*,'输入n'read*,npr...
program main
real a(3,3),b(3,3),c(3,3)
integer n,m
print*,'输入m'
read*,m
print*,'输入n'
read*,n
print*,'输入矩阵a'
read*,a
print*,'输入b'
read*,b
call smv(a,b,c,ld,m,n)
print*,'matrice c',c,'cmax',cmax
end
subroutine smv(a,b,c,ld,m,n)
real a(ld,m),b(ld,m),c(ld,m)
integer n,m
do i=1,m
do j=1,n
c(i,j)=a(i,j)+b(i,j)
enddo
enddo
maxc=c(1,1)
do i=1,n
do j=1,n
if (c(i,j).gt.cmax) then
cmax=c(i,j)
endif
enddo
enddo
end subroutine
我m,n都输入3,然后a=1,2,3,4,5,6,7,8,9 b=9,8,7,6,5,4,3,2,1
本来应该全是10的,可是结果是10,10,10,2.867....e-42,..(就不打了)
是哪里出错啦?
新手求助啦!!!!!!!!!! 展开
real a(3,3),b(3,3),c(3,3)
integer n,m
print*,'输入m'
read*,m
print*,'输入n'
read*,n
print*,'输入矩阵a'
read*,a
print*,'输入b'
read*,b
call smv(a,b,c,ld,m,n)
print*,'matrice c',c,'cmax',cmax
end
subroutine smv(a,b,c,ld,m,n)
real a(ld,m),b(ld,m),c(ld,m)
integer n,m
do i=1,m
do j=1,n
c(i,j)=a(i,j)+b(i,j)
enddo
enddo
maxc=c(1,1)
do i=1,n
do j=1,n
if (c(i,j).gt.cmax) then
cmax=c(i,j)
endif
enddo
enddo
end subroutine
我m,n都输入3,然后a=1,2,3,4,5,6,7,8,9 b=9,8,7,6,5,4,3,2,1
本来应该全是10的,可是结果是10,10,10,2.867....e-42,..(就不打了)
是哪里出错啦?
新手求助啦!!!!!!!!!! 展开
1个回答
展开全部
嗯,你的 ld 都没有定义,也没有赋值。就这一点你的程序就完全没法继续看了。
Fortran 的优势就是矩阵运算。你的程序可以非常简单。
program main
real a(3,3),b(3,3),c(3,3),cmax
integer n,m
print*,'输入m'
read*,m
print*,'输入n'
read*,n
print*,'输入矩阵a'
read*,a
print*,'输入b'
read*,b
call smv(a,b,c,m,m,n,cmax)
print*,'matrice c',c,'cmax',cmax
end
subroutine smv(a,b,c,ld,m,n,cmax)
real a(ld,m),b(ld,m),c(ld,m)
integer n,m
c = a + b
cmax = maxval(c)
end subroutine
这两句代码就可以了。
我建议你看一下这个文章,关于定义数组和变量的一些常识:fcode.cn/guide-43-1.html
Fortran 的优势就是矩阵运算。你的程序可以非常简单。
program main
real a(3,3),b(3,3),c(3,3),cmax
integer n,m
print*,'输入m'
read*,m
print*,'输入n'
read*,n
print*,'输入矩阵a'
read*,a
print*,'输入b'
read*,b
call smv(a,b,c,m,m,n,cmax)
print*,'matrice c',c,'cmax',cmax
end
subroutine smv(a,b,c,ld,m,n,cmax)
real a(ld,m),b(ld,m),c(ld,m)
integer n,m
c = a + b
cmax = maxval(c)
end subroutine
这两句代码就可以了。
我建议你看一下这个文章,关于定义数组和变量的一些常识:fcode.cn/guide-43-1.html
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询