Ok trochę poprawiłem nie wszystko tak jak pisaliście ale dowiedziałem się ze do wskaźnika najlepiej przypisywać tylko jedna zmienna. Ale już po napisaniu całego kodu mam dziwny problem wskaźniki tablic sumują mi się tylko na pierwszej pozycji tablicy. Dziwne jest to że jak sprawdzam jakie wartości siedzą w danym wskaźniku to wszystko pasuje tylko nie mogą się zsumować.
#include <iostream>
#include <stdlib.h>
using namespace std;
int size_tab;
int size_tab2;
int *pointer_size_tab = new int;
int *pointer_size_tab2 = new int;
int *pointer_tab = new int[size_tab]; //pod wskaznikiem wsk_tab jest tablica z odpowiednim rozmiarem
int *pointer_tab2 = new int[size_tab2]; //pod wskaznikiem wsk_tab2 jest tablica z odpowiednim rozmiarem
int what_size_tab/*jaki rozmiar tablicy*/( int k );
int what_size_tab2/*jaki rozmiar tablicy*/( int k );
void assignment/*przypisanie*/( int size_tab , int size_tab2 , int k , int *pointer_tab , int *pointer_tab2 );
int compare/*porównaie*/( int *pointer_size_tab , int *pointer_size_tab2 ); //pointer(ang) == wskaźnik(pl)
void tab_sum_tab2/*sumowanie tab i tab2*/( int result_compare_size , int *pointer_tab , int *pointer_tab2 );
int main()
{
int result_compare_size;
for ( int k = 0 ; k < 2 ; k++)
{
if ( k == 0)
{
size_tab = what_size_tab( k );
cout << "rozmiar tablicy " << k+1 << " to " << size_tab << endl;
pointer_size_tab = &size_tab;
//cout << "Wskaznik ma wartość " << size_tab << endl;
assignment( size_tab , size_tab2 , k , pointer_tab , pointer_tab2 );
}
else if ( k == 1 )
{
size_tab2 = what_size_tab2( k );
cout << "rozmiar tablicy " << k+1 << " to " << size_tab << endl;
pointer_size_tab2 = &size_tab2;
//cout << "Wskaznik ma wartość " << size_tab2 << endl;
assignment( size_tab , size_tab2 , k , pointer_tab , pointer_tab2);
}
}
result_compare_size = compare/*porównaie*/( pointer_size_tab , pointer_size_tab2 );
cout << "wspolny rozmiar tablic to " << result_compare_size << endl;
system("clear");
tab_sum_tab2/*sumowanie tab i tab2*/( result_compare_size , pointer_tab , pointer_tab2 );
return 0;
}
//***************************************************************************
int what_size_tab/*jaki rozmiar tablict*/( int k )
{
int size = 0;
cout << "Podaj rozmiar tablicy " << k+1 << " ";
cin >> size;
return size;
}
//***************************************************************************
int what_size_tab2/*jaki rozmiar tablicy*/( int k )
{
int size1 = 0;
cout << "Podaj rozmiar tablicy " << k+1 << " ";
cin >> size1;
return size1
;
}
//***************************************************************************
void assignment/*przypisanie*/( int size_tab , int size_tab2 , int k , int *pointer_tab , int *pointer_tab2 )
{
//cout << "\nK wynosi: " << k << "\n" << endl;
int number;
if ( k == 0)
{
for ( int i = 0 ; i < size_tab ; i++)
{
cin >> number;
pointer_tab[i] = number;
cout << "tab[" << i << "] = " << pointer_tab[i] << endl;
}
}
else if( k == 1)
{
for ( int i = 0 ; i < size_tab2 ; i++)
{
cin >> number;
pointer_tab2[i] = number;
cout << "tab[" << i << "] = " << pointer_tab2[i] << endl;
}
}
}
//***************************************************************************
int compare/*porównanie*/( int *pointer_size_tab , int *pointer_size_tab2 )
{
//cout << "rozmiar 1 tablicy " << *pointer_size_tab << " rozmiar 2 tablicy " << *pointer_size_tab2 << endl;
if (*pointer_size_tab2 > *pointer_size_tab)
{
//cout << "\nwartość pointer_size_tab opcja1 " << *pointer_size_tab << "\n" << endl;
return *pointer_size_tab;
}
else if (*pointer_size_tab > *pointer_size_tab2)
{
//cout << "\nwartość pointer_size_tab opcja2 " << *pointer_size_tab2 << "\n" << endl;
return *pointer_size_tab2;
}
else
{
//cout << "\nwartość pointer_size_tab opcja3 " << *pointer_size_tab << "\n" << endl;
return *pointer_size_tab;
}
}
//**************************************************************************
void tab_sum_tab2/*sumowanie tab i tab2*/( int result_compare_size , int *pointer_tab , int *pointer_tab2 )
{
int result_sum = 0;
for ( int i = 0 ; i < result_compare_size ; i++ )
{
result_sum = pointer_tab[i] + pointer_tab2[i];
cout << "sumowanie " << result_sum << endl;
cout << "wastość tab 1 " << *pointer_tab << " wartosc tab2 " << *pointer_tab2 << endl;
cout << "\ntab[" << i << "](" << *(pointer_tab++) << ") + tab2[" << i << "](" << *(pointer_tab2++) << ") = tab3[" << i << "](" << result_sum << ")" << endl;
}
}