• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak użyć struktury w funkcji?

Object Storage Arubacloud
0 głosów
515 wizyt
pytanie zadane 4 stycznia 2017 w C i C++ przez Ala123456 Użytkownik (760 p.)

#include<stdio.h>
#include<math.h>


void mnozenie( int a, int b, int c, int d, int *wyr, int *wyu ) 

{

*wyr=(a*c)-(b*d);

*wyu=(a*d)+(b*c);
	

}
int main(void)

{

int x1r=1, x1i=2;

int x2r=2, x2i=7;

int x3r, x3i;

mnozenie(x1r,x1i,x2r,x2i,&x3r,&x3i);

printf( "(%d+i%d)*(%d+i%d)=(%d+i%d)\n", x1r, x1i, x2r, x2i, x3r, x3i );

}

Witam, mam problem z którym nie mogę sobie poradzić. Powyzej znajduje się kod w jezku c mnożacy 2 liczby zespolone przy użyciu funkcji. Mam natomiast do wykoniania zadnie:

Utwórz strukturę do reprezentacji funkcji zespolonych, użyj ich do powyższego kodu do przekazywania

przez argumenty liczb zespolonych. 

Powyższy kod udało mi się napisać i dziala poprawnie jednak nie mogę sobie poradzić z utworzeniem tutaj struktury, pomimo, iż wiem jak wyglada schemat tworzenia struktur. Byłabym wdzieczna za pomoc :D

2 odpowiedzi

0 głosów
odpowiedź 4 stycznia 2017 przez playerony Pasjonat (15,240 p.)

Dostosuj sobie ten kod do swoich potrzeb:

#include<stdio.h>
#include<math.h>

struct Dane{
    int a, b, c, d;
};

void mnozenie( Dane dane, int *wyr, int *wyu )
{

*wyr=(dane.a*dane.c)-(dane.b*dane.d);

*wyu=(dane.a*dane.d)+(dane.b*dane.c);


}
int main(void){
Dane dane;
dane.a = 1;
dane.b = 2;
dane.c = 2;
dane.d = 7;

/*
int x1r=1, x1i=2;
int x2r=2, x2i=7;
*/

int x3r, x3i;

mnozenie(dane,&x3r,&x3i);

printf( "(%d+i%d)*(%d+i%d)=(%d+i%d)\n", dane.a, dane.b, dane.c, dane.d, x3r, x3i );

}

 

–1 głos
odpowiedź 7 maja 2017 przez Gankkah Użytkownik (720 p.)

#include<stdio.h>
#include<math.h>

struct liczba_zespolona
{
     double rzeczywista, urojona;
}
 
void mnozenie( liczba_zespolona x, liczba_zespolona y, liczba_zespolona* wynik ) 
 
{
 
(*wynik).rzeczywista = x.rzeczywista * y.rzeczywista;

(*wynik).urojona = x.urojona * y.urojona;     
 
}
int main(void)
 
{
 
liczba_zespolona x1 = {1, 2};
 
liczba_zespolona x2 = {2, 7};
 
liczba_zespolona x3;
 
mnozenie(x1,x2,&x3);
 
printf( "(%f+i%f)*(%f+i%f)=(%f+i%f)\n", x1.rzeczywista, x1.urojona, x2.rzeczywista, x2.urojona, x3.rzeczywista, x3.urojona  );
 
}

 

W ogóle liczby zespolone mają realną część rzeczywistą oraz realną część urojoną.

Podobne pytania

0 głosów
1 odpowiedź 542 wizyt
0 głosów
1 odpowiedź 412 wizyt
0 głosów
2 odpowiedzi 7,791 wizyt
pytanie zadane 28 czerwca 2017 w C i C++ przez Arson90 Nowicjusz (180 p.)

92,568 zapytań

141,422 odpowiedzi

319,641 komentarzy

61,957 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...