Otoz mam taki problem, ze nie wiem jak przekazac tablice bedace wynikami funkcji 'int main' do innej funkcji, narazie chce do 'void nawiasy'.Chce je tam wykorzystac razem z wartosciami w nich sie znajdujacymi.Nie moge ich tak poprostu wrzucic do zmiennych globalnych.Ponizej przedstawiam caly kod pliku main.cpp.
Kod:
//PRZEKIEROWYWANIE ODCZYTANYCH ZNAKOW I LICZB DO TABLIC
#include<iostream>
#include<conio.h>
#include<math.h>
using namespace std;
#include "opcje.h"
#include "pomoc.h"
#include "nawiasy.h"
int main()
{
int i=0; //zmienna calkowita do tablicy dzialanie
int k=0; //zmienna calkowita do tablicy liczby
int w=0; //zmienna calkowita do tablicy znaki
int n=0; //ilosc wszystkich znakow w dzialaniu
int j=0; //ilosc cyfr przed przecinkiem w poszczegolnej liczbie
int z=0; //wartosc pomocnicza ktorej przypisywana jest wartosc i
int mno; //wspolczynnik przemnazania wyliczonej potegi przez sprawdzana cyfre
char dzialanie[i]; //tablica calego dzialania
bool ujemna=false; //okresla czy liczba jest ujemna
float liczba=0; //liczba
do
{
system("cls");
j=0; //ustawienie zmiennych na zero przed nowym dzialaniem
ujemna=false;
liczba=0;
i=0;
z=0;
k=0;
w=0;
n=0;
char dzialanie[i]; //tablica calego dzialania
float liczby[k]; //tablica liczb
char znaki[w]; //tablica znakow
cout<<"q - wyjscie o - opcje h - pomoc"<<endl;
cout<<"Podaj dzialanie: ";
cin>>dzialanie;
switch(dzialanie[i])
{
case 'q':cout<<"Koniec";return 0;break; //zakonczenie programu
case 'o':opcje();break; //przejscie do opcji programu
case 'h':pomoc();break; //przejscie do pomocy programu
default: //wykonywanie dzialania
{
while(dzialanie[i]!='0') //zliczanie ilosci znakow w podanym dzialaniu
{
i++;
n=n+1;
}
i=0;
do
{
while(dzialanie[i]=='(') //pomijanie nawiasow z dodaniem ich do wartosci i
{
i++;
}
while(dzialanie[i]=='|') //dodanie napotkanej wartosci bezwglednej do tablicy
{
znaki[w]=dzialanie[i];
i++;
w++;
}
z=i;
if(dzialanie[i]=='-') //sprawdzenie czy liczba jest ujemna
{
ujemna=true;
i=i+1;
}
while(isdigit(dzialanie[i])) //zliczanie cyfr przed przecinkiem
{
i++;
j=j+1;
}
if(ujemna==true)
i=1+z;
else
i=0+z;
for(;i<n;i++) //wykrywanie liczby w tablicy
{
if(dzialanie[i]=='.')
continue;
if(!isdigit(dzialanie[i])) //sprawdzenie czy nie napotkano na znak inny niz cyfra
break;
mno=dzialanie[i]-'0';
liczba=pow(10,j-1)*mno+liczba;
j=j-1;
}
if(ujemna==true)
liczba=liczba*-1;
if(dzialanie[i]=='%') //jesli napotkamy na procent
{
liczba=liczba/100;
i++;
}
while(dzialanie[i]=='|') //dodanie napotkanej wartosci bezwglednej do tablicy
{
znaki[w]=dzialanie[i];
i++;
w++;
}
while(dzialanie[i]==')') //pomijanie nawiasow z dodaniem ich do wartosci i
{
i++;
}
liczby[k]=liczba; //dodanie wyliczonej liczby do tablic
if(i!=n)
{
znaki[w]=dzialanie[i]; //dodanie wykrytego znaku do tablicy
i++;
}
k++;
w++;
liczba=0;
ujemna=false;
j=0;
}
while(i!=n); //wykonuj dopoki i nie osiagnie ilosci znakow w tablicy
}
nawiasy();
for(i=0;i<5;i++)
cout<<" liczby "<<liczby[i];
for(i=0;i<5;i++)
cout<<" znaki "<<znaki[i];
//for(i=0;i<5;i++)
//cout<<" nawiasyh "<<nawiasyh[i];
// for(i=0;i<5;i++)
//cout<<" nawiasy "<<nawiasy[i];
getch();
}
}
while(dzialanie[i]!='q');
getch();
}