fork download
  1. #include <stdio.h>
  2.  
  3. typedef struct {
  4. double Re; /** 実部 **/
  5. double Im; /** 虚部 **/
  6. } Complex;
  7.  
  8. int input(Complex *z)
  9. {
  10. printf("Re Im=");
  11. scanf("%lf %lf", &z->Re, &z->Im);
  12. return 0;
  13. }
  14.  
  15. Complex wa(Complex z1, Complex z2)
  16. {
  17. Complex z;
  18.  
  19. z.Re = z1.Re + z2.Re;
  20. z.Im = z1.Im + z2.Im;
  21. return z;
  22. }
  23.  
  24. Complex seki(Complex z1, Complex z2)
  25. {
  26. Complex z;
  27.  
  28. z.Re = (z1.Re * z2.Re) - (z1.Im * z2.Im);
  29. z.Im = (z2.Re * z1.Im) + (z1.Re * z2.Im);
  30. return z;
  31. }
  32.  
  33. int main()
  34. {
  35. Complex z1, z2, z;
  36.  
  37. printf("z1\n");
  38. input(&z1);
  39. printf("z2\n");
  40. input(&z2);
  41. z = wa(z1, z2);
  42. printf("z1+z2 Re=%f Im=%f\n", z.Re, z.Im);
  43. z = seki(z1, z2);
  44. printf("z1+z2 Re=%f Im=%f\n", z.Re, z.Im);
  45. return 0;
  46. }
  47.  
Success #stdin #stdout 0.01s 1724KB
stdin
1 2
3 4
stdout
z1
Re Im=z2
Re Im=z1+z2 Re=4.000000 Im=6.000000
z1+z2 Re=-5.000000 Im=10.000000