Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

potęgowanie za pomocą funkcji

Ostatnio zmodyfikowano 2017-10-30 18:23
Autor Wiadomość
FrostEvil
Temat założony przez niniejszego użytkownika
potęgowanie za pomocą funkcji
» 2017-10-30 14:12:25
Witam chciałbym aby ktoś podpowiedział mi co jest nie tak z owym programem:

#include <iostream>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;


int dane( int E, int potega[], int wykladnik[])
{
int i,j;
int wynik[E];
for(i=0;i<E;i++)
{
for(j=0;j<potega[E];j++)
{

wynik[j]=wynik[j]*wykladnik[j];
}

}
return wynik;
}


int main(int argc, char** argv) {

int D,i;
cout<<"Podaj ilosc przypadkow"<<endl;
cin>>D;
 int potega1[D], wykladnik1[D];
if(D>0 && D<11)
{

for(i=0;i<D;i++)
{
cout<<"Podaj potege"<<endl;
cin>>*potega1;
cout<<"Podaj wykladnik"<<endl;
cin>>wykladnik1;
}
}


cout<<dane(D,potega1[D],wykladnik1[D]);


return 0;
}

uczę się sam i chciałem napisać program który potęguje za pomocą funkcji, plan był taki żeby w main wczytać dane czyli ilość wykonanych obliczeń i przyporządkować potęge/ wykładnik do tablic następnie w funkcji następuje obliczenie oraz zwrócenie tablicy z wynikami potem wywołanie funkcji w funkcji main funkcji która oblicza wynik i wyświetlenie jej. Główny problem mam z wyświetleniem funkcji oraz z podaniem danych do funkcji obliczającej...
P-166240
pekfos
» 2017-10-30 14:24:27
C/C++
wynik[ j ] = wynik[ j ] * wykladnik[ j ];
Ta linia wygląda dobrze, chociaż nie jestem pewien, czy w ogóle ma sens w tym programie. Poza tym, cała reszta jest błędna. Ani jednego poprawnego użycia tablicy. Tzn poza tą linią - ta linia wygląda dobrze.
P-166241
Anim
» 2017-10-30 14:26:33
Może jeszcze dodam, że warto rozpocząć Kurs na tej stronie od początku.

Bo jak napisał @pekfos, praktyczie wszystko źle. Poczytaj o tablicach, następnie o tablicach dynamicznych, do tego sposób przekazywania argumentów do funkcji...


I dodatkowo, wstawiaj kod w znaczniki: [cpp] KOD [/cpp]
P-166242
FrostEvil
Temat założony przez niniejszego użytkownika
poprawienie
» 2017-10-30 16:17:26
C/C++
#include <iostream>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int oblicz( int a, int p[], int w[] )
{
    int i, j;
    int * wynik = new int[ a ];
    for( j = 0; j < a; j++ )
    { wynik[ j ] = 1;
        for( i = 1; i <= p[ j ]; i++ )
        {
            wynik[ j ] = wynik[ j ] * w[ j ];
        }
       
    }
   
    return * wynik;
    delete[] wynik;
}




int main( int argc, char ** argv ) {
   
    int i, D;
    cout << "Podaj ilosc powtorzen" << "\n";
    cin >> D;
    int * potega = new int[ D ];
    int * wykladnik = new int[ D ];
   
   
    for( i = 0; i < D; i++ )
    {
        cout << "podaj potege" << "\n";
        cin >> potega[ i ];
        cout << "podaj wykladnik" << "\n";
        cin >> wykladnik[ i ];
    }
   
    int m = oblicz( D, potega, wykladnik );
    cout << m;
    delete[] potega;
    delete[] wykladnik;
    return 0;
}


poczytałem troche i poprawiłem do tego stanu, nie wiem czy formalnie cały program jest dobrze napisany ale liczyć liczy poprawnie aczkolwiek jest jeszcze 1 rzecz która muszę poprawić a mianowicie wyświetlenie tablicy pobranej z funkcji.
1. czy wiersz
int m = oblicz( D, potega, wykladnik );
 jest poprawny? mianowicie czy do funkcji przekazana jest tablica?
2. jak wyświetlić wyniki pobrane z funkcji oblicz? Program działa ale wyświetla mi tylko pierwsze obliczenie
P-166245
pekfos
» 2017-10-30 16:22:46
C/C++
return * wynik;
delete[] wynik;
Nie zwalniasz tablicy i po co w ogóle ta tablica, skoro zwracasz jedną liczbę?
P-166246
FrostEvil
Temat założony przez niniejszego użytkownika
» 2017-10-30 16:30:31
właśnie chciałbym z tej funkcji zwrócić tablicę i wyświetlić ją w main ale nie wiem jak ... ;/
P-166247
YooSy
» 2017-10-30 16:39:23
Funkcja powinna zwracać
int *
,
return wynik;
.
W main
int * wsk_na_zwracana_tablice = oblicz( D, potega, wykladnik );
 i zwolnienie pamięci też w main
delete[] wsk_na_zwracana_tablice;
.
P-166248
FrostEvil
Temat założony przez niniejszego użytkownika
» 2017-10-30 16:56:18
invalid conversion from 'int*' to 'int' [-fpermissive]
taki błąd mi wyskakuje :/
P-166249
« 1 » 2 3
  Strona 1 z 3 Następna strona