c++ 구조체를 이용한 복소수 연산 질문입니다.

sisyad의 이미지

.

#include <iostream>
#include <math.h> 
using namespace std; 
 
 
 
struct complex
    {  
 
    public:
    complex( void ) { 
    real = imag = 0; 
  } 
 
   complex( double x, double y) 
 { 
   real = x;        
   imag = y; 
} 
 
    public:
 
     double real;  
     double imag; 
 
    }; 
 
typedef struct complex complex; 
 
namespace A {
 
     // 덧셈
	void add_complex(complex x, complex y) ?  
  { 
    complex add; //덧셈 결과를 저장할 변수         
    add = complex(x.real + y.real, x.imag + y.imag) ;
 
cout << "복소수의 합= 실수부 :  "<< add.real << endl;
cout << "복소수의 합= 허수부 :  "<< add.image <<endl;        
                 }     
	//뺄셈
	void sub_complex(complex x, complex y)
     {
      complex sub;         
      sub = complex(x.real - y.real, x.imag - y.imag);
 
cout << "복소수의 뺄셈 = 실수부 :  "<< sub.real << endl;
cout << "복소수의 뺄셈= 허수부 :  "<< sub.image <<endl;          
	}
 
//곱셈
 
void mult_complex(complex x, complex y)
     {
     complex mult;         
 
       mult=coomplex( (x.real * y.real) - (x.imag * y.imag, ((x.real * y.image) + (x.imag * y.real) ) ;
 
cout << "복소수의 곱셈 = 실수부 : "<<mult.real << endl;
cout << "복소수의 곱셈= 허수부 :  "<<mult.image <<endl;          
	}
// 나눗셈 
void abs_complex(complex x, complex y)     {    
    complex abs; 
    double conjugates = x.real * y.real + x.imgge * y.imag;  // 켤레복소수를 곱한 분모 값    
  abs= complex(( (x.real * y.real) + (x.imag * y.imag;) ) / conjugates , ( (x.real * y.image) - (x.imag * y.real;) ) / conjugates);
 
cout << " 복소수의 나눗셈= 실수부 : "<< abs.real <<endl; cout << "  허수부 :  " << abs.imag << endl;    
  }
}
 
using namespace A;
 
int main()
{
 complex x, y; 
 
  cout << "첫 번째 복소수의 실수값: "; 
  cin >> x.real; 
  cout << "첫 번째 복소수의 허수값: "; 
  cin >> x.imag; 
  cout << "두 번째 복소수의 실수값: "; 
  cin >> y.real; 
  cout << "두 번째 복소수의 허수값: "; 
  cin >> y.imag; 
 
  add_complex();
  sub_complex(); 
  mult_complex();
  abs_complex();
 
 
 
	return 0; 
}
 
<\code>
 
문제가 뭘까요 8ㅅ8 
 의 이미지

1. 무슨 에러가 뜨는지 직접 살펴보세요.

에러 메시지를 여기에 올리지 않으셨다는 건 그걸 별로 주목하지 않았다는 의미이지요.

에러가 발생했을 때 에러 메시지를 읽고 그게 무슨 의미인지 직접 고민해보지 않으면 늘 제자리걸음일 뿐입니다.

2. 한눈에 봐도 이 부분이 이상하군요.

void add_complex(add_complex x, add_complex x )

이런 종류의 실수는 대개 복사-붙여넣기나 찾아바꾸기 기능 따위를 부주의하게 사용했을 때 자주 발생합니다.

그런 기능은 조심해서 쓰세요. 초보자라면 아예 안 쓰는 게 좋고요. 충분히 생각하고 코딩하는 습관을 만드는 데 방해됩니다.

 의 이미지

1. 먼저 올리셨던 코드 및 질문 내용을 싹 지워버리시고 새 코드로 덮으셨군요.

답변 드렸던 입장에서 질문의 맥락이 날라가버리는 건 별로 즐거운 경험이 아닙니다.
그러니 이렇게 해 두면 되겠군요: http://archive.is/taZXg

2. 에러 메시지는 여전히 안 올리셨네요. 읽어 보시기는 하셨나요?

3. 여전히 몇 군데 명백한 문제가 있습니다.

 mult=coomplex( (x.real * y.real) - (x.imag * y.imag, ((x.real * y.image) + (x.imag * y.real) ) ;

coomplex 오타. 게다가 괄호 쌍이 전혀 안 맞습니다.

  add_complex();
  sub_complex(); 
  mult_complex();
  abs_complex();

매개변수 두 개가 필요한 함수들을 매개변수 없이 호출하고 있군요.

그 외에도 문제가 더 있어 보이지만 일단 이 정도만 하겠습니다.

 의 이미지

중복 삭제

세벌의 이미지

backslash code 를 slash code 로 바꿔 보셔요.

어떤 결과를 기대했는데 어떤 결과가 나왔는지?
컴파일은 되었는데 실행할 때 에러가 나는지?
컴파일 자체가 안 되는지?
에러메시지는 무엇인지?
알려주셔요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.