fortran实战手册(2)

发布时间 2023-11-07 22:15:50作者: 水宝石

if and select case

 您叫什么名字?
张三
 您数学、英语、政治成绩多少分?
98,78,55
 Hi,欢迎张三      !
 您平均分:          77 !
 您真是一个数学天才!
 您政治要加油了!

Process returned 0 (0x0)   execution time : 17.262 s
Press any key to continue.

program hello
    implicit none
    integer::math_score,english_score,politics_score
    character (len=10)::name
    write (*,*) '您叫什么名字?'
    read(*,*) name

    write (*,*) '您数学、英语、政治成绩多少分?'
    read(*,*) math_score,english_score,politics_score

    write (*,*) 'Hi,欢迎',name,'!'
    write (*,*) '您平均分:',(math_score+english_score+politics_score)/3,'!'
    math:select case (math_score)
    case (101:) math
        write (*,*) '您数学成绩真实吗?'
    case (60:79) math
        write (*,*) '您数学及格了!'
    case (80:79)  math
        write (*,*) '您数学比较好了!'
    case (80:95)  math
        write (*,*) '您数学很优异!'
    case (96:100)  math
        write (*,*) '您真是一个数学天才!'
    end select math
    english:if (english_score >85 )then
        write (*,*) '您英语比较好了!'
    else if (english_score >95) then
        write (*,*) '您真是一个英语天才!'
    end if english
    politics:select case (politics_score)
    case (:70)
        write (*,*) '您政治要加油了!'
    case (96,97,98,99,100)
        write (*,*) '您真是一个政治天才!'
    case (101:)
        write (*,*) '您政治成绩真实吗?'
    case default
        write (*,*) '您政治比较好了!'
    end select politics


end program


上面程序有一个错误

    english:if (english_score >85 )then
        write (*,*) '您英语比较好了!'
    else if (english_score >95) then
        write (*,*) '您真是一个英语天才!'
    end if english
 您叫什么名字?
张三
 您数学、英语、政治成绩多少分?
89,98,77
 Hi,欢迎张三      !
 您平均分:          88 !
 您数学很优异!
 您英语比较好了!
 您政治比较好了!

Process returned 0 (0x0)   execution time : 12.550 s
Press any key to continue.

修改一下


program hello
    implicit none
    integer::math_score,english_score,politics_score
    character (len=10)::name
    write (*,*) '您叫什么名字?'
    read(*,*) name

    write (*,*) '您数学、英语、政治成绩多少分?'
    read(*,*) math_score,english_score,politics_score

    write (*,*) 'Hi,欢迎',name,'!'
    write (*,*) '您平均分:',(math_score+english_score+politics_score)/3,'!'
    math:select case (math_score)
    case (101:) math
        write (*,*) '您数学成绩真实吗?'
    case (60:79) math
        write (*,*) '您数学及格了!'
    case (80:79)  math
        write (*,*) '您数学比较好了!'
    case (80:95)  math
        write (*,*) '您数学很优异!'
    case (96:100)  math
        write (*,*) '您真是一个数学天才!'
    end select math
    english:if (english_score >95 )then
        write (*,*) '您真是一个英语天才!'
    else if (english_score >85) then
        write (*,*) '您英语比较好了!'
    end if english
    politics:select case (politics_score)
    case (:70)
        write (*,*) '您政治要加油了!'
    case (96,97,98,99,100)
        write (*,*) '您真是一个政治天才!'
    case (101:)
        write (*,*) '您政治成绩真实吗?'
    case default
        write (*,*) '您政治比较好了!'
    end select politics


end program


 您叫什么名字?
张三
 您数学、英语、政治成绩多少分?

88,99,44
 Hi,欢迎张三      !
 您平均分:          77 !
 您数学很优异!
 您真是一个英语天才!
 您政治要加油了!

Process returned 0 (0x0)   execution time : 11.435 s
Press any key to continue.