Re: [問題] IF ELSE

看板Fortran作者 (マタアイマショウ )時間15年前 (2009/10/21 22:20), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
※ 引述《ilelm (我想吃好蛋)》之銘言: : 最近學到了if else語法,遇到了一個問題,可以請各位幫我看問題出在哪裡嗎?謝謝! : 題目是這樣: : The cost of sending apackage by an express delivery service is $10.00 : for the first 2 pounds,and $3.75 for each pound or fraction thereof : 2pounds.If the package weighs more than 70pounds, a $10.00 excess : weight surcharge is added to the cost.No package over 100 pounds : will be accepted.Write aprogram that accept the weight of a pcckage : in pounds and computesthe cost of mailing the package. Be sure to : handle the case ofoverweight packages. : 我寫的程式如下: : program main : implicit none : real :: w,cost,a,b,c : write(*,*)"請輸入包裹的重量(單位:磅)" : read(*,*) w : if (w>100.0) then : write(*,*)"超重了你知道嗎?" : else if(w<=2.0) then : a=10.00 : write(*,*)"cost=",a : else if (2.0 <w <=70.0.AND.INT(W-2.0)=W-2.0) then : b=10.0+3.75(w-2.0) : write(*,*)"cost=",b : else if (2.0 < w < 70.0 .AND.INT(W-2.0)/=W-2.0) then : b=10.0+3.75(int(w+1.0)-2.0) : write(*,*)"cost=",b : else if(w>70.0 .AND.INT(W-2.0)=W-2.0) then : c=20.0+3.75(w-2.0) : else if (w>70.0 .AND.INT(W-2.0)/=W-2.0) then : c=20.0+3.75(int(w+1.0)-2.0) : write(*,*)"cost=",c : end if : pause : stop : end program main 單純的只看語法的話,紅色的部分都是不正確的... 所以我改了一下... program main implicit none real :: w, cost write (*,*) '您的包裹重量是(單位:磅)?' read (*,*) w if (w < 0.0) then write (*,*) '這裡面裝的是阿飄嗎?' else if (w <= 2.0) then write (*,*) '包裹重量在 2 磅以下, 運用費用 $10.0' else if (2.0 < w .and. w < 70.0) then cost = 10.0+3.75*int(w-2.0) write (*,*) '包裹重量為', w, '磅, 運用費用 $', cost else if (70 <= w .and. w < 100.0) then cost = 10.0+3.75*int(w-2.0)+10.0 write (*,*) '包裹重量為', w, '磅, 運用費用 $', cost else if (100.0 <= w) then write (*,*) '抱歉, 我們不收100磅以上包裹.' end if pause stop end program main -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.84.1.2
文章代碼(AID): #1AtnYsS8 (Fortran)
文章代碼(AID): #1AtnYsS8 (Fortran)