Wątek przeniesiony 2014-08-07 13:00 z C/C++ przez ŁF.

Program podnoszący do kwadratu każdy element tablicy

0

Witam, chciałem napisać program, który podnosi do kwadratu każdy element tablicy. Niestety po wielu próbach i modyfikacjach program nie wykonuje zadania.
Zamieszczam ostatni kod, który udało mi się wymyślić aby program zadziałał. Proszę o pomoc w wykonaniu tego programu.

#include <iostream>
using namespace std;
int funkcja ( int tab[])
{
	int wynik;
	for (int i=1; i<2; i++)
	{
	tab[i]=i;
	wynik=i*i;

    }
return wynik;
}
int main()
{
	int i;
	int ile_elementow;
	cout<<"podaj ile elementow ma miec tablica: ";
	cin>>ile_elementow;
	
	int *tablica;
	tablica=new int [ile_elementow];
	
	for (i=0; i<ile_elementow; i++)
	{
		tablica[i]=i;
	}
	
	for (i=0; i<ile_elementow; i++)
	{
		cout<<endl<<"podaj   "<<i<<"     element tablicy: ";
		cin>>tablica[i];
	}

	cout<<endl;
    
	for( i=0; i<ile_elementow; i++)
	{
		cout<<"element nr   "<<i<<"   do kwadratu=  "<<funkcja(tablica)<<endl;
	}
	

	delete [] tablica;
}
1

o_O Przecież to co napisałeś nie ma sensu.

  1. Po co wpisujesz do tablicy kolejne liczby 1..n skoro potem wczytujesz liczby do tablicy od użytkownika?
  2. Skoro chcesz kwadraty wypisywać w pętli to znaczy że twoja funkcja ma podnosić do kwadratu JEDEN element a nie tablicę. Przekaż więc do niej JEDNĄ liczbę i zwróć liczba*liczba.
  3. Zupełnie umyka mi zamysł jaki miałeś z tą swoją funkcją. Czemu masz tam jakąś petlę od 1 do 2? o_O
1

Prawie identyczny problem jak Twój poprzedni post: http://4programmers.net/Forum/C_i_C++/237136-tablica_c++_-_potrajanie_elementow. Tam chciałeś potroić, tutaj chcesz podnieść do kwadratu. Weź program już po poprawkach sugerowanych przez forumowiczów, zmień operację potrajania na potęgowanie i masz.

0
Shalom napisał(a):

o_O Przecież to co napisałeś nie ma sensu.

  1. Po co wpisujesz do tablicy kolejne liczby 1..n skoro potem wczytujesz liczby do tablicy od użytkownika?
  2. Skoro chcesz kwadraty wypisywać w pętli to znaczy że twoja funkcja ma podnosić do kwadratu JEDEN element a nie tablicę. Przekaż więc do niej JEDNĄ liczbę i zwróć liczba*liczba.
  3. Zupełnie umyka mi zamysł jaki miałeś z tą swoją funkcją. Czemu masz tam jakąś petlę od 1 do 2? o_O
  1. Chodzi Ci o pętle w funkcji?
  2. Chcę żeby podnosiła całą tablicę ale nie wiem jak to zrobić
  3. po prostu nie wiem jak mam tę funkcję napisać i próbowałem rożnych sposobów a na tym stanęło.
2

To skasuj to a następnie napisz od nowa, od 0. Tym razem myśląc a nie pisząc metodą prób i błędów. Najpierw wymyśl co chcesz zrobić.

0

Dziękuję za pomoc.

Jeśli ktoś ma jakieś wskazówki to nadal proszę o pomoc.

usunięcie cytowania całego poprzedniego posta - furious programming

0

Wskazówki:

  1. nie używaj nagiego new/delete, to zła praktyka
    for (i=0; i<ile_elementow; i++)
    {
        tablica[i]=i;
    }
 
    for (i=0; i<ile_elementow; i++)
    {
        cout<<endl<<"podaj   "<<i<<"     element tablicy: ";
        cin>>tablica[i];
    }

Przypisujesz wartości do tablicy, a chwilę później je nadpisujesz. Po co?

int funkcja ( int tab[])

Staraj się nadawać deskryptywne nazwy. Co robi funkcja? Jak mamy Ci pomóc jak nie wiemy co chcesz zrobić w danym miejscu?

Twoja funkcja zawsze robi to samo:
przypisuje 1 do drugiego elementu tablicy (tab[1]), po czym zwraca 1*1.

0

Dzięki.
pkt 2 i 3 poprawione, myślę nad 4

usunięcie cytowania całego poprzedniego posta - furious programming

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