Tablica C++ - potrajanie elementów.

0

Program ma za zadanie potrajać każdy element tablicy. Niestety potraja tylko ostatni element (4). Gdzie popełniłem błąd. Pozdrawiam, Fibonaczi.

#include <iostream>
using namespace std;	
int potrojenie( int t[5])
{
	for (int i=0; i<5 ; i++)
		{
	
	t[i]=3*i;
    }
}

int main()
{
    int tablica[5];
	for(int i=0; i<5 ;i++)
	{
		cout<<i<<endl;
	}
	cout<<"-------------------------------------------"<<endl;
	cout<<"po potrojeniu:"<<endl;
	cout<<potrojenie(tablica);
	
	}
0
cout<<potrojenie(tablica);

po co dajesz na wyjście zwrotek funkcji z której nic nie zwracasz?

też musisz dać pętle:

int main()
{
    int tablica[5];
    for(int i=0; i<5 ;i++)
    {
        cout<<i<<endl;
    }
    cout<<"-------------------------------------------"<<endl;
    cout<<"po potrojeniu:"<<endl;
    potrojenie(tablica);
    for(int i=0; i<5 ;i++)
    {
        cout<<i<<endl;
    }
}
0

Teraz ten program wyświetla wyniki bez potrojenia... (0,1,2,3,4).

1

aż się dziwie że w ogóle działa ;) looknij teraz:

int main()
{
    int tablica[5];
    for(int i=0; i<5 ;i++)
    {
        cout<<i<<endl;//tu wypisujesz tylko wartość i
       tablica[i] = i;
    }
    cout<<"-------------------------------------------"<<endl;
    cout<<"po potrojeniu:"<<endl;
    potrojenie(tablica);
    for(int i=0; i<5 ;i++)
    {
        cout<<tablica[i]<<endl; //a tu wypisujesz teraz zawartość tablicy
    }
}


0

Działa poprawnie, dzięki wielkie, pozdrawiam Fibonaczi :)

0
Fibonaczi napisał(a):

Działa poprawnie

Nie działa poprawnie. Zmień pierwszą pętle na:

    for(int i=0; i<5 ;i++)
    {
        cout<<i<<endl;//tu wypisujesz tylko wartość i
       tablica[i] = 1000*i;
    }
0

Skoro funkcja ma potrajać każdy element tablicy to chyba tak powinno być:

#include <iostream>

void potroj(int tab[], unsigned roz){
    while(roz--)
        tab[roz]=tab[roz]*3;
}

int main(){
    int tab[]={1,3,-2,7,9,-10};
    std::cout << "Przed potrojeniem:\n";
    for(unsigned i=0;i<sizeof(tab)/sizeof(*tab);i++)
        std::cout << tab[i] << " ";
    std::cout << "\n";

    potroj(tab,sizeof(tab)/sizeof(*tab));

    std::cout << "\nPo potrojeniu:\n";
    for(unsigned i=0;i<sizeof(tab)/sizeof(*tab);i++)
        std::cout << tab[i] << " ";
    std::cout << "\n";
    return 0;
}

http://ideone.com/MyBFi1

1

edit:
tu było rozwiązanie, które wg. niektórych było chwaleniem się
przestałem być chwalipiętą i usunąłem (carebox)

to dla Ciebie @Johnny_Bit
http://ideone.com/EocCUg kod mojego mentora

0

hehe. dobre. A zaczęło się od banalnie prostego kodu dla początkującego, co widać że się uczy... wirtualne piwo dla tego kto da funktor + coś z <algorithm> bo wesoło się robi.

Albo lepiej - wcisnąć wszystko co się da z c++1y w toto, a co tam ;)

1

"są programiści i programiści niedzielni, tak dyskusja skończona (don't give up)" - gośćabc

Są też tacy którzy chcą pomóc początkującemu i tacy którzy chcą popisać się swoimi umiejętnościami.

1 użytkowników online, w tym zalogowanych: 0, gości: 1