看板 Fortran 關於我們 聯絡資訊
: #include "stdafx.h" : #include <stdio.h> : #include <math.h> : #include <process.h> : // ---------------------------------------------- : double get_item(int n) : { : double ans; : ans= 1.0; : for (int i=2;i<=n;i++) { : ans= ans*2.0/i; : } : return(ans); : }// end of get_item() : // ---------------------------------------------- 上面是 函數, for 是迴圈,等於 int i= 2; do while(i .LT. n) ans= ans*2.0/i i= i + 1 end do 個人覺得,Fortran 和 C 沒有什麼不同啊 : int main(int argc, char* argv[]) : { : double sum, item; : int m, n; : sum= 1.0; : for (m=2;m <= 25;m++) { : n= m*2; : item= get_item(m*2); : if ((m%2) == 0) { : item*= -1; : } : sum+= item; : printf("n= %3d, %.18lf\n", (n), sum); : } : return 0; : } : ※ 引述《mon02118 (我不是好男人)》之銘言: : : 我們老師出一個作業 : : 計算 : : 2^3 2^5 2^7 2^9 2^49 : : 1- ----- + ----- - ----- + ----- .... ------ : : 4! 6! 8! 10! 50! : : 這是我打的 : : implicit none : : integer::i,a,c : : real(kind=8)::ss,n,v : : a=1 : : do i=1,50 : : if(i/2*2/=i)n=2**i : : a=a*i : : if(i/2*2==i)then : : v=a : : c=c+1 : : ss=ss-(-1)**c*n/v : : write(*,*)c,ss : : endif : : enddo : : end : : 算出來的 : : 1 1.00000000000000 : : 2 0.666666666666667 : : 3 0.711111111111111 : : 4 0.707936507936508 : : 5 0.708077601410935 : : 6 0.708073325851104 : : 7 0.708079731129053 : : 8 0.708063381375117 : : 9 0.707917491813515 : : 10 0.708166899470330 : : 11 0.704154863362005 : : 12 0.714965674172816 : : 13 0.696866126661503 : : 14 0.794427102271259 : : 15 1.17537948322364 : : 16 0.175379483223640 : : 17 NaN : : 18 NaN : : 19 NaN : : 20 NaN : : 21 NaN : : 22 NaN : : 23 NaN : : 24 NaN : : 25 NaN : : 好像算到第10項就錯了, 請問我應該怎麼修改呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.231.79.164
YCTzeng:我還是看不懂C,為什麼一開始有#include, 大括號是什麼意思 11/23 12:23
smingtsai:#include視同遊戲外掛沒某些外掛不能做某些事 12/16 19:19
smingtsai:大括號為fortran裡的loop如do-enddo,if-endif 12/16 19:20
smingtsai:亦可視為founction-end,subroutine-end 12/16 19:22