1、fortran程序案例题汇编14道汇编1Fibonacci数列定义如下: F1=1 F2=1 Fn=Fn-1+Fn-2 (n2) 求Fibonacci数列的前30项。integer f(30),if(1)=1f(2)=2do i=3,30f(i)=f(i-1)+f(i-2)enddoprint*,fend2输入10个学生的总分,求每个学生的名次 integer s(10),a(10),i,jdo i=1,10read*,s(i)enddodo i=1,10a(i)=1do j=1,10if(s(i)s(j) a(i)=a(i)+1enddoenddodo i=1,10print*,s(i),a
2、(i)enddoend3给定一组数,按照从小到大的顺序输出。integer a(10)integer pdo i=1,10read *,a(i)enddodo j=1,9p=jdo i=j+1,10if (a(i)a(j+1) then t=a(j)a(j)=a(j+1)a(j+1)=tendifenddoenddocase(1)do i=1,n-1do j=1,n-Iif(a(j)a(j+1) then t=a(j)a(j)=a(j+1)a(j+1)=tendifenddoenddoend selectendreal,dimension(:),allocatable:binteger k,n
3、print*,请输入要排序的数据数目read*,nallocate(b(n)print *,请输入这n个数据read *,(b(i),i=1,n)print*,请输入k的值read *,kcall sort(b,n,k)print *,(b(i),i=1,n)end10编写一个判断闰年的程序。调用该过程输出20112050之间所有的闰年。function s(n)integer nlogical sif(mod(n,4)=0.and.mod(n,100)/=0.or.mod(n,400)=0)thens=.true.elses=.false.endifend logical sdo i=201
4、1,2050if(s(i)thenprint*,iendifenddoend11利用子程序机制实现:输入若干名学生的学号和三门课程的成绩;计算每个学生的总分;输出每个学生的学号、三门课程的成绩和总分。integer,dimension(:,:),allocatable:gradeinteger,dimension(:),allocatable:zonginteger,dimension(:),allocatable:mingci integer m,nread *,m,nallocate (grade(m,n)allocate(zong(m)allocate(mingci(m)call inp
5、ut(grade,m,n)call sum1(grade,m,n,zong)call qiuming(zong,m,mingci)call output(grade,m,n,zong,mingci)endsubroutine input(grade,m,n)integer grade(m,n)print *,请输入成绩do i=1,m read *,(grade(i,j),j=1,n)enddoendsubroutine sum1(grade,m,n,zong)integer grade(m,n)integer zong(m)zong=0do i=1,m do j=1,n zong(i)=zo
6、ng(i)+grade(i,j) enddoenddoendsubroutine qiuming(zong,m,mingci)integer zong(m)integer mingci(m) mingci=1do i=1,m do j=1,m if(zong(i)1e-6)s=s+f*x*n/fac(n)n=n+2f=-fenddoprint*,send13输入10名学生的学号、姓名、性别和一门课程的成绩,要求打印出不及格学生的所有信息。type scharacter*11 numcharacter*8 namelogical sexreal gradeend typetype(s) g(10
7、)integer i,jprint*,请输入学生的基本信息do i=1,10read*,g(i).num,g(i).name,g(i).sex,g(i).gradeenddodo i=1,10if(g(i).grade60)thenj=iendifenddoprint*,g(j).num,g(j).name,g(j).sex,g(j).gradeend14.已知职工工资表记录包括:职工号,姓名,年龄、职称、工资,建立一个10个职工组成的记录表,打印输出职工中工资最高者和最低者所有信息,以及工资总额和平均工资。type empcharacter*6 numcharacter*8 nameinte
8、ger agecharacter*16 zhichenreal wageendtypetype(emp) s(10)integer ireal max,min,sum,avgprint*,请输入职工的基本信息do i=1,10read *,s(i).num,s(i).name,s(i).age,s(i).zhichen,s(i).wageenddomax=s(1).wage;j=1do i=2,10if(maxs(i).wage)thenmin=s(i).wagehang on 不挂断;稍等;紧紧握住k=iendifenddobored adj. 厌烦的sum=0droop vi. 低垂;凋萎
9、;萎靡do i=1,10victim n. 受害者sum=sum+s(i).wagesurvey n. 调查;测验enddoavg=sum/10president n. 总统;会长;校长;行长print *,输出最高工资的职工信息hopeful adj. 怀有希望的;有希望的print *,s(j).num,s(j).name,s(j).age,s(j).zhichen,s(j).wageprint *,输出最低工资的职工信息print *,s(k).num,s(k).name,s(k).age,s(k).zhichen,s(k).wageprint *,输出工资总额和平均值challenge n. 挑战print *,sum,avgPeter the Great 彼得大帝(俄国皇帝)end(意大利文艺复兴雕刻家、画家、建筑师和诗人)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1