Fortran Coder

查看: 37|回复: 6

[读物] 彭国伦教材P98课后第三题

[复制链接]

16

帖子

5

主题

0

精华

入门

F 币
88 元
贡献
48 点
发表于 2020-6-30 09:47:13 | 显示全部楼层 |阅读模式
彭国伦教材P98课后第三题,所得税有三个等级,岁年龄不同有不同算法。求教我的程序错在哪里
无标1.jpg
回复

使用道具 举报

822

帖子

0

主题

0

精华

宗师

F 币
1273 元
贡献
710 点

规矩勋章元老勋章新人勋章水王勋章

QQ
发表于 2020-6-30 10:31:09 | 显示全部楼层
end case 改为 end select

16

帖子

5

主题

0

精华

入门

F 币
88 元
贡献
48 点
 楼主| 发表于 2020-6-30 11:23:48 | 显示全部楼层
vvt 发表于 2020-6-30 10:31
end case 改为 end select

改了,还是有两个问题
错误        1         error #5082: Syntax error, found IDENTIFIER 'TAX' when expecting one of: THEN       
错误        2        Compilation Aborted (code 1)       

822

帖子

0

主题

0

精华

宗师

F 币
1273 元
贡献
710 点

规矩勋章元老勋章新人勋章水王勋章

QQ
发表于 2020-6-30 14:17:55 | 显示全部楼层
重新给你改正后的代码。尽可能复制粘贴(不截图)

16

帖子

5

主题

0

精华

入门

F 币
88 元
贡献
48 点
 楼主| 发表于 2020-6-30 16:32:35 | 显示全部楼层
好的
[Fortran] 纯文本查看 复制代码
program test0503
implicit none
integer age
real income,tax

write(*,*) "Input your age:"
read(*,*) age
write(*,*) "Input your income:"
read(*,*) income

select case(age)
case(0:49)
if(income>=0.0.and.income<=1000.0) then
  tax=income*0.03
else if(income>1000.0.and.income<=5000.0) then
  tax=income*0.10
else if(income>5000.0) then
  tax=income*0.15
else if(income<0.0)  tax=0
end if
case(50:)
if(income>=0.0.and.income<=1000.0) tax=income*0.05
if(income>1000.0.and.income<=5000.0) tax=income*0.07
if(income>5000.0) tax=income*0.10
if(income<0.0)  tax=0
case default
  tax=0
end select

write(*,*) "Tax:"
write(*,*) tax

stop
end

12

帖子

0

主题

0

精华

入门

vim

F 币
115 元
贡献
55 点
发表于 2020-6-30 17:21:04 | 显示全部楼层
15235312522 发表于 2020-6-30 16:32
好的
program test0503
implicit none

[Fortran] 纯文本查看 复制代码
program test0503
implicit none
integer age
real income,tax

write(*,*) "Input your age:"
read(*,*) age
write(*,*) "Input your income:"
read(*,*) income

select case(age)
case(0:49)
if(income>=0.0.and.income<=1000.0) then
  tax=income*0.03
else if(income>1000.0.and.income<=5000.0) then
  tax=income*0.10
else if(income>5000.0) then
  tax=income*0.15
else if(income<0.0) then
!这个地方用了elseif就要用then
 tax=0
end if
case(50:)
if(income>=0.0.and.income<=1000.0) tax=income*0.05
if(income>1000.0.and.income<=5000.0) tax=income*0.07
if(income>5000.0) tax=income*0.10
if(income<0.0)  tax=0
case default
  tax=0
end select

write(*,*) "Tax:"
write(*,*) tax

stop
end

16

帖子

5

主题

0

精华

入门

F 币
88 元
贡献
48 点
 楼主| 发表于 2020-6-30 17:44:48 | 显示全部楼层
收到,程序正常了,谢谢老师
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

QQ|捐赠本站|Archiver|关于我们 About Us|群聊|Fcode

GMT+8, 2020-7-8 18:11

Powered by Discuz! X3.2

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表