当前位置:首页 建筑知识 阅读 下列FORTRAN程序:DIMENSION M (6)READ(*,*)MDO 10J=1,6DO 10K=J,6IF(M (K) .LT.M (J) )THENN=M(K)M(K)=M(J)M

阅读 下列FORTRAN程序:DIMENSION M (6)READ(*,*)MDO 10J=1,6DO 10K=J,6IF(M (K) .LT.M (J) )THENN=M(K)M(K)=M(J)M

发布时间:2023-03-03 07:21:44

阅读 下列FORTRAN程序:DIMENSION M (6)READ(*,*)MDO 10J=1,6DO 10K=J,6IF(M (K) .LT.M (J) )THENN=M(K)M(K)=M(J)M(J)=NEND IF10 CONTINUEWRITE(*,100)(M(),I=1,6)100 FORMAT(2X,614)END键盘输入10,7,9,2,1,3;程序运行后的输出结果是:

A 、1237910

阅读 下列FORTRAN程序:DIMENSION M (6)READ(*,*)MDO 10J=1,6DO 10K=J,6IF(M (K) .LT.M (J) )THENN=M(K)M(K)=M(J)M

B 、109732 1

C 、7921310

D 、31297 10

参考答案

【正确答案:A】

数组赋值以后,各数组元素的值为: M (1) =10, M (2) =9, M (3) =9,M (4) =2, M (5) =1, M (6) =3。 当循环一次后 M (1) 的值就确定下来了,因此不需要再做下去。此时M (1) =1。

关于Fortran90中二维数组的输入输出和计算问题

首先,读文件,或者是在程序中输入你这51行数据

设置行数n=51,这样你后面可以直接通过变换n的值来控制数据行数的变化

parameter(n=51)

integer mm(n,6) ! 二维数组,51*6 第一列表示序号,2至5列表示数据内容

integer msum(n),num(n-1)

! msum是和,num是统计相同数的个数的数组,每两行有一个num,故为长度为n-1

open(1,file='这个数据文件',form='formatted')

do i=1,n

read(1,*) (mm(i,j),j=1,6)

enddo

max=mm(1,2)

min=mm(1,2) ! 2表示第二列,可视情况都改为3,4,5,6……

do i=1,n

if(mm(i,2)>max)then

max=mm(i,2)

endif

if(mm(i,2)<min)then

min=mm(i,2)

endif

msum(i)=0

do j=2,6

msum(i)=msum(i)+mm(i,j)

enddo

enddo

! 这样,max,min就分别是第二列元素的最大值和最小值,msum即存放每行之和

do i=1,n-1

阅读 下列FORTRAN程序:DIMENSION M (6)READ(*,*)MDO 10J=1,6DO 10K=J,6IF(M (K) .LT.M (J) )THENN=M(K)M(K)=M(J)M

num(i)=0

do j=2,6

do k=2,6

if(mm(i,j)==mm(i+1,k))then

num(i)=num(i)+1

endif

enddoenddo

enddo

open(2,file='result.txt',form='formatted')

write(2,*),'max=',max,' min=',min

do i=1,n

write(2,*),i,'sum=',msum(i)

enddo

do i=1,n-1

write(2,*),i,'number of same =',num(i)

enddo

end

基本上如此,你结果并不都是一维数组,输出的时候,最好加以说明,或者分行或者分不同的文件……

另外,统计相邻两行之间有多少个数是相同的,这段程序我大概表达一下那意思,你自己看着修改。

fortran程序问题: k=1 DO 10 I=1,2 DO 10 J=1,2 10 K=K*I/J WRITE(*,*)K END 的结果为什么是0?

第一次:K=1

K=K*I/J

其中I = 1 , J=1

所以 K = 1*1/1 = 1

第二次

K=K*I/J

其中I = 1 , J=2

所以 K = 1*1/2 = 0

以后 K 乘任何数都是 0,所以最终结果是 0

请注意:

1、/2 = 0 因为 1 和 2 都是整数,除了以后还是整数,0.5 转换成整数就是取整,即为 0

如果你要实现你的期望。应当把 K 定义为实数,即:

Real K

阅读 下列FORTRAN程序:DIMENSION M (6)READ(*,*)MDO 10J=1,6DO 10K=J,6IF(M (K) .LT.M (J) )THENN=M(K)M(K)=M(J)M

并且把

K=K*I/J

改为

K=K * I * ( 1.0 / J )

温馨提示:
本文【阅读 下列FORTRAN程序:DIMENSION M (6)READ(*,*)MDO 10J=1,6DO 10K=J,6IF(M (K) .LT.M (J) )THENN=M(K)M(K)=M(J)M】由作者 电气工程师考试 转载提供。 该文观点仅代表作者本人, 自学教育网 信息发布平台,仅提供信息存储空间服务, 若存在侵权问题,请及时联系管理员或作者进行删除。
(c)2008-2025 自学教育网 All Rights Reserved 汕头市灵创科技有限公司
粤ICP备2024240640号-6