#include #include #include #define N 1000 double _Complex f(double _Complex z); //=============== メイン関数 ====================== int main(void) { double _Complex z, dz, S=0; int i; dz=2*I/N; for(i=0; i<=N; i++){ z = 1-I+i*dz; S += f(z)*dz; } dz=-2.0/N; for(i=0; i<=N; i++){ z = 1+I+i*dz; S += f(z)*dz; } dz=-2*I/N; for(i=0; i<=N; i++){ z = -1+I+i*dz; S += f(z)*dz; } dz=2.0/N; for(i=0; i<=N; i++){ z = -1-I+i*dz; S += f(z)*dz; } printf("%f%+fi\n",creal(S),cimag(S)); return 0; } //=============== 積分する複素関数 ============ double _Complex f(double _Complex z) { return 1.0/z; }