永发信息网

Fortran一个程序是写文件,写入10个学生的学号和数学成绩,并输出显示在输出屏幕。

答案:2  悬赏:40  手机版
解决时间 2021-01-03 16:34
  • 提问者网友:缘字诀
  • 2021-01-03 04:52
.编写两个程序,一个程序是写文件,写入10个学生的学号和数学成绩,并输出显示在输出屏幕。一个程序是调用上个程序写入的文件,然后进行统计,分别统计出不及格的学生个数并列出其学号,成绩,及格(60-70)的学生个数并列出其学号、成绩,良好(70-80))的学生个数并列出其学号、成绩,优秀(80-100)的)的学生个数并列出其学号、成绩,

学号
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010

成绩
48
83
62
78
95
86
67
52
90
85
最佳答案
  • 五星知识达人网友:往事埋风中
  • 2021-01-03 05:52
在一个程序中实现你的要求:

dimension no(100),score(100)
integer no,score
n=10

c 读数据
do 10 i=1,n
read(*,*) no(i),score(i)
10 continue

c 将数据输出到屏幕
do 12 i=1,n
write(*,*) no(i),score(i)
12 continue
write(*,*)

c 将数据写入文件cj.out
open(99,file='cj.out',status='unknown')
do 15 i=1,n
write(99,*) no(i),score(i)
15 continue
close(99)

c 读刚生成的cj.out文件
open(1,file='cj.out')
do 18 i=1,n
read(1,*) no(i),score(i)
18 continue
close(1)

m=0
do 19 i=1,n
if (score(i).lt.60) then
m=m+1
write(*,*) no(i),score(i)
endif
19 continue
write(*,*) '不及格人数=',m
write(*,*)

m=0
do 20 i=1,n
if (score(i).ge.60.and.score(i).lt.70) then
m=m+1
write(*,*) no(i),score(i)
endif
20 continue
write(*,*) '60~70之间人数=',m
write(*,*)

m=0
do 21 i=1,n
if (score(i).ge.70.and.score(i).lt.80) then
m=m+1
write(*,*) no(i),score(i)
endif
21 continue
write(*,*) '70~80之间人数=',m
write(*,*)

m=0
do 22 i=1,n
if (score(i).ge.80) then
m=m+1
write(*,*) no(i),score(i)
endif
22 continue
write(*,*) '80以上人数=',m
write(*,*)

pause
end
全部回答
  • 1楼网友:神也偏爱
  • 2021-01-03 06:52
期待看到有用的回答!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯