Преобразование определенной структуры в двойные (комплексные числа) в c ++ - PullRequest
0 голосов
/ 11 ноября 2018

Я пытаюсь найти способ определения структур и закодировал это, чтобы определить комплексное число. Я уже успешно работал с ними, например, с умножением, но я не знаю, как преобразовать абсолютное значение моего комплексного числа в двойное, мой компилятор постоянно говорит мне, что не знает, как его преобразовать, даже если сложная структура буквально из 2-х двухместных ..

    #include <iostream>
#include <cstdlib>
#include <cmath>

using namespace std;

struct Complex_Number { 
    double re, im;      
};
void print(const Complex_Number& w) //my print function for complex numbers
{
    cout  << '(' << w.re << " + i*" << w.im << ')';
}

 double abs(const Complex_Number& z )
{

   z = z.re + z.im;
  abs = sqrt((z.re*z.re)+(z.im*z.im)); 

   return abs;
   }




  int main()
{

 return 0;




}

1 Ответ

0 голосов
/ 11 ноября 2018

Я не знаю, что вы намереваетесь с z = z.re + z.im; Вторая часть просто должна быть присвоена переменной или возвращена напрямую. Так что пиши ...

double abs(const Complex_Number& z ) {

  double ret = sqrt((z.re*z.re)+(z.im*z.im)); 

  return ret;
}

или

double abs(const Complex_Number& z ) {

  return sqrt((z.re*z.re)+(z.im*z.im)); 
}

Назначение чего-либо «имени функции», как в вашем коде, т.е. abs = sqrt((z.re*z.re)+(z.im*z.im)), не является допустимым кодом C ++.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...