Witam,
mam do napisania program w którym:
"Funkcje:WCZYTAJ_TAB(x),WYPISZ_TAB(x), NIEp_TAB(x,y), MAX_MIN_TAB(x) umożliwiają:
- Stworzenie dwóch tablic n-elementowych A i B
- Stworzenie tablicy C w której znajdowałyby się wszystkie elementy nieparzyste
znajdujące się w tablicy A i B
- wydrukowanie wyniku końcowego: tablic A, B i C. Dodatkowo program powinien przesyłać argumenty do funkcji za pomocą
wskaźnika oraz operować wewnątrz funkcji odpowiednimi wskaźnikami. Tablice
powinny być stworzone dynamicznie w main-ie a ich rozmiar wczytany z klawiatury".
Moim problemem jest przesłanie nieparzystych elementów dwóch pierwszych tablic do 3 tablicy. Gdy chcę wypisać zawartość trzeciej tablicy w funkcji "WYPISZ_TAB" pokazują mi się liczby kompletnie nie związane z zadaniem. Natomiast gdy wypisuję te liczby "na bieżąco" podczas wykonywania funkcji "NIEp_TAB" to normalnie mi się pokazują. Bardzo proszę o pomoc. Wklejam niżej program :
#include <iostream>
using namespace std;
void WCZYTAJ_TAB(int *wsk1, int *wsk2,int a);
void WYPISZ_TAB(int *wsk1, int *wsk2,int *wsk3,int a);
void NIEp_TAB(int *wsk1, int *wsk2,int *wsk3,int *wsk4,int a);
int main()
{
int a;
cout << " Jaki ma byc rozmiar tablicy?" << endl;
cin >> a;
int *wsk1;
wsk1 = new int
/;
int *wsk2;
wsk2 = new int
/;
int *wsk3;
wsk3 = new int
/;
WCZYTAJ_TAB(wsk1,wsk2,a);
NIEp_TAB(wsk1,wsk2,wsk3,wsk4,a);
WYPISZ_TAB(wsk1,wsk2,wsk3,a);
delete []wsk1;
delete []wsk2;
delete []wsk3;
}
void WCZYTAJ_TAB(int *wsk1, int *wsk2, int a)
{
for(int i=0;i<a;i++)
{
cout << " Podaj pierwsza dane dla "<<i<<" elementu 1 tablicy "<<endl;
cin >>*wsk1 ;
*wsk1++;
}
for(int i=0;i<a;i++)
{
cout << " Podaj pierwsza dane dla "<<i<<" elementu 2 tablicy "<<endl;
cin >>*wsk2 ;
*wsk2++;
}
}
void NIEp_TAB(int *wsk1, int *wsk2,int *wsk3,int *wsk4,int a)
{
for(int i=0;i<a;i++)
{
if(*wsk1%2==1)
{
*wsk3=*wsk1;
cout <<"liczba nieparzysta " <<*wsk3<< endl; //Tutaj normalnie są wypisywane
*wsk1++;
*wsk3++;
}
else
{
*wsk1++;
}
}
for(int i=0;i<a;i++)
{
if(*wsk2%2==1)
{
*wsk3=*wsk2;
cout <<"liczba nieparzysta " <<*wsk3<< endl; //Tutaj normalnie są wypisywane
*wsk3++;
*wsk2++;
}
else
{
*wsk2++;
}
}
}
void WYPISZ_TAB(int *wsk1, int *wsk2, int *wsk3,int a)
{
cout << " Dane w tab1 wynosza :" <<endl;
for(int i=0;i<a;i++)
{
cout << *wsk1 << endl;
*wsk1++;
}
cout << " Dane w tab2 wynosza :" <<endl;
for(int i=0;i<a;i++)
{
cout << *wsk2 << endl;
*wsk2++;
}
cout << " Dane w tab3 wynosza :" <<endl; //Natomiast tutaj już nie są
for(int i=0;i<a;i++)
{
cout << *wsk3 << endl;
*wsk3++;
}
}