Problem z tablicą

waldeq

Użytkownik
Dołączył
Styczeń 21, 2007
Posty
70
Mam taki problem.Otóż mam taki program w którym są 3 tablice: dzialanie, podstawa, wykladnik.I w pętli for wypełniam najpierw tablicę podstawa na podstawie tablicy dzialanie do momentu poki w tablicy dzialanie nie napotkam na znak '^'.Wtedy reszte tej tablicy chcę przekierowac do tablicy wykladnik.Jednak nic się nie dzieje.Powiedzcie mi jaki tu może byc błąd.Poniżej przedstawiam kod i wynik dzialania programu.
Kod:
#include<iostream>

#include<conio.h>

using namespace std;

int main()

{

    int i=0,j=0,k=0,n=0,n2=0,n3=-1;

    char podstawa[i],wykladnik[i];

    int a,b;

    char c;

    char dzialanie[i];

    cout<<"Podaj dzialanie: ";

    cin>>dzialanie;

    while(dzialanie[i]!='0')

    {

         i++;

         n=n+1;             

    }                 

    for(i=0;i<n;i++)

    {

         if(dzialanie[i]=='^')

         c='^';

         if(c!='^')

         {

         n2=n2+1;

         podstawa[i]=dzialanie[i];

         }

         else

         {

         cout<<dzialanie[i];

         n3=n3+1;

         wykladnik[i]=dzialanie[i];

         }

    }

    cout<<"n";

    for(i=0;i<n2;i++)

    {

         cout<<podstawa[i]<<"n";

    }

    for(i=0;i<n3;i++)

    {

         cout<<wykladnik[i]<<"n";

    }

   // cout<<n2<<n3;

    //cout<<n;    

    getch(); 

}
prak7.jpg
[/quote]
 

mr_psychoo

Użytkownik
Dołączył
Luty 10, 2007
Posty
81
takie rozwiazanie bedzie mniej skomplikowane

Kod:
#include<iostream>

#include<conio.h>

using namespace std;

int main()

{

    int podstawa, wykladnik;

    char i;



    cout << "podaj dzialanie: ";

    cin >> podstawa >> i >> wykladnik;



    cout << podstawa << endl;

    cout << wykladnik << endl;



    getch();

}

nie musiasz naciskac [enter] po wpisaniu kazdej zmiennej... mozesz po prostu wpisac np 2^3 i dopiero wtedy nacisnac [enter]

i dodatkowo program bedzie dzialal dobrze nawet jesli zamiast ^ podasz jakis inny znak
<
chyba ze nie bedziesz tego chcial to wystarczy jakas instr warunkowa mowiaca ze nie pojawil sie znak potegowania

poza tym ulatwi ci to napisanie dalszej czesci programu :]

pozdroo
 

waldeq

Użytkownik
Dołączył
Styczeń 21, 2007
Posty
70
Ok działa dobrze thx.Nieźle to uprościłeś.Cuż lubię sobie czasem utrudniac życie.Dam ci punkta.
Kod:
#include<iostream>

#include<conio.h>

using namespace std;

int main()

{

    int podstawa, wykladnik, wynik=1;

    char i;

    int j;

    do

    {

    cout<<"Podaj dzialanie: ";

    cin>>podstawa>>i>>wykladnik;

    if(i!='^')

    {

         cout<<"Znak "<<i<<" nie jest znakiem potegowania!";

         getch();

         system("cls");

    }

    }

    while(i!='^');

    for(j=0;j<wykladnik;j++)

    {

         wynik=wynik*podstawa;

    }                   

    cout<<wynik;     

    getch();

}
 
Do góry Bottom