• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pointer wyniku w parametrze funkcji (c++)

Object Storage Arubacloud
0 głosów
128 wizyt
pytanie zadane 21 maja 2020 w C i C++ przez Marcin4 Użytkownik (570 p.)

Cześć :)

Mógł by kto naprowadzić ew. wytłumaczyć? :)

Dostałem zadanie w ktorym tablica 2d ma mieć w zależności od wyboru użytkownika sumowane wybrane kolumny lub wiersze. W założeniu dostałem prototypy obu funkcji.

O ile sumaWiersza jest jasna, w parametrze podaje numer kolumny i sam tworzę ciało które wyrzuca wynik. To sumaKolumny ma w drugim parametrze wskaźnik na liczbę calkowita  - Int * suma. I tu nie mam pojęcia o co chodzi - jakieś sugestie? :)

w zależności od wyboru użytkownika oblicz sumę wybranego wiersza lub kolumny (użytkownik podaje 'w' – wiersz lub 'k' – kolumna oraz numer). Obliczanie sum mają realizować funkcje o następujących prototypach:
sumaWiersza(int numer);
sumaKolumny(int numer, int *suma);

1 odpowiedź

+1 głos
odpowiedź 21 maja 2020 przez j23 Mędrzec (194,920 p.)

jakieś sugestie? :)

Nazwa sugeruje, że masz zwrócić obliczoną sumę ;)

komentarz 21 maja 2020 przez Marcin4 Użytkownik (570 p.)
W parametrze? Sory, pewnie moja wiedza o wskaźnikach mnie ogranicza i nie rozumiem jak stworzyć funkcje która do parametru pobiera swój własny wynik. Przecież nie mam tego wyniku gdy ją wywołuje .
komentarz 21 maja 2020 przez j23 Mędrzec (194,920 p.)
edycja 21 maja 2020 przez j23
void sumaKolumny(int numer, int *suma);
{
    ...
    *suma = /* obliczona suma */
}

Nie ma racjonalnych powodów, by tak zwracać wynik w tym przypadku, ale to zadanie na zaliczenie, więc logiki w tym bym się nie doszukiwał.

komentarz 23 maja 2020 przez Marcin4 Użytkownik (570 p.)

No dobra , dzięki:>

 

A takie mam jeszcze pytanie, w tym zadaniu tworzę dynamicznie alokowaną tablicę dwuwymiarową - pobierająca rozmiar od użytkownika.

Jeśli mam tworzyć ciało funkcji do obliczania sumy wybranej kolumny/wiersza która znajduje się poza główną metodą int main() , to jak mam się do niej odwołać, ponieważ kompilator przy metodzie void sumaWiersz niewidzi mojej przyszłej tabeli -  zwraca mi następujący błąd:
Błąd    C2065    "tab": niezadeklarowany identyfikator   

void assign(int* arr, int m, int n)
{
	for (int i = 0; i < m; i++) {
		for (int j = 0; j < n; j++) {
			arr[i * n + j] = (rand() % 200) - 100;
		}
	}
}
void sumaWiersza(int numer)
{
	for (int i = 0; i < numer; i++)
	{
		suma = suma + tab[i][numer]; // < tu mam podkreślony na czerwono tab
	}
}
int main()
{
	cout << "Podaj ilosc wierszy w tabeli:";
	cin >> w;
	cout << "Podaj ilosc kolumn w tabeli:";
	cin >> k;
	int* tab = (int*)malloc(w * k * sizeof(*tab));
	assign(tab, w, k);

	
	for (int i = 0; i < w; i++) { //Wyświetlanie tabeli
		for (int j = 0; j < k; j++) {
			printf("%3d", tab[i * k + j]);
		}
		printf("\n"); 
	}
free(tab);
	return 0;
}

 

komentarz 23 maja 2020 przez j23 Mędrzec (194,920 p.)

Daj definicję int* tab; przed definicją funkcji assign. Oczywiście w main definicję tab wywalasz, jedynie przypisujesz przydzielony adres.

Podobne pytania

0 głosów
0 odpowiedzi 241 wizyt
0 głosów
1 odpowiedź 518 wizyt
pytanie zadane 21 kwietnia 2020 w C i C++ przez Hubertius Bywalec (2,970 p.)
0 głosów
2 odpowiedzi 457 wizyt

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...