Witam mam takie zadanie:
treść
Napisz program, w którym w funkcji main zostaną stworzone (operatorem new) trzy tablice typu double o identycznych rozmiarach (co najmniej 20 elementów). Elementy pierwszych dwóch tablic załaduj jakimiś wartościami. W programie powinna być funkcja, która przyjmie wysłane do niej te trzy tablice. Funkcja ta ma na elementach tych tablic wykonać operację mnożenia – taką, że i-ty element tablicy pierwszej zostanie pomnożony przez i-ty element tablicy drugiej. Rezultat ma zostać wpisany do i-tego elementu tablicy trzeciej. W funkcji main wypisz na ekranie zawartość poszczególnych elementów tablicy pierwszej, drugiej i trzeciej, a następnie skasuj te tablice.
Napisałem taki program: (bardzo chce to zrobić przekazując do funkcji wskaźniki)
#include <iostream>
using namespace std;
void mnoznie(const double* w1, const double* w2, double* w3);
void wypisz(const double* w);
constexpr int rozmiar{ 20 };
int main()
{
double* wsk_1 = new double[rozmiar]{ 1,2,3,4,5,6,7,8,9,10,11 };
double* wsk_2 = new double[rozmiar]{ 2,4,6,8,10,12,14,16,18,20,22,24,26,28,30 };
double* wsk_3 = new double[rozmiar];
mnoznie(wsk_1, wsk_2, wsk_3);
wypisz(wsk_1);
cout << endl;
wypisz(wsk_2);
cout << endl;
wypisz(wsk_3);
delete[] wsk_1;
delete[] wsk_2;
delete[] wsk_3;
system("PAUSE");
}
void mnoznie(const double* w1, const double* w2, double* w3)
{
for (int i = 0; i < rozmiar; i++,w1++,w2++,w3++)
{
*w3 = (*w1) * (*w2);
}
}
void wypisz(const double* w)
{
for (int i = 0; i < rozmiar; i++)
{
cout << *w << " ";
}
}
lecz wyniki to w pierwszej tablicy same 1
w drugiej same 2
w trzeciej same 2
nie wiem gdzie jest bład ktoś umie mi go wskazać
////////
Tak wiem ze moze to rozwiazać poprzez przekazywanie tablic do funkcji jestem ciekawy czy da się tak jak ja chcaiłem zrobić
na pewno dobry sposób
#include <iostream>
using namespace std;
void funkcja( double t1[ ], double t2[ ], double t3[ ], int rozmiar)
{
for(int i = 0 ; i < rozmiar ; ++i)
{ t3[i] = t1[i] * t2[i]; }
}
int main(){
int rozmiar = 25 ;
auto *tab1 = new double[rozmiar];
auto *tab2 = new double[25];
auto *tab3 = new double[25];
for(int i = 0 ; i < rozmiar; ++i) {
tab1[i] = i;
tab2[i] = 2;
}
funkcja(tab1, tab2, tab3, rozmiar);
for(int i = 0 ; i < rozmiar ; ++i)
cout << "tab3[ " << i << "] = " << tab3[i] << endl;
delete [] tab1;
delete [] tab2;
delete [] tab3;
}