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

Tablice ze wskaźnikami C

0 głosów
67 wizyt
pytanie zadane 20 stycznia w C i C++ przez wyntia Nowicjusz (120 p.)
edycja 20 stycznia przez wyntia

Dzień dobry,

Mam mały problem. Za zadanie miałam wyświetlić minimalny element w osobnej funkcji z tablicy zdefiniowanej w funkcji main. Kazano mi użyć wskaźników. Jednakże kod się zatrzymuje na zdefiniowanej przeze mnie funkcji float min. Kod jest napisany w języku C.

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

float min (int n, float *a[]);


int main ()
{	setlocale (LC_ALL, "");
	int i,n, a[n]; 
	printf("Podaj z ilu elementów ma składać sie twoja tablica: \n");
	scanf("%d", &n);
	
	for (i=0; i<n;i++)
	{
		printf("Element tablicy [%d]: ", i);
		scanf ("%f", &a[i]);
	}
	
	min (n, &a[i]);

	return 0;
}
float min (int n, float *a[])
{
	int i;
	float minn= *a[0];
	for (i=1; i<n;i++)
	{
		if (*a[i] < minn) minn=*a[i];
		}	
	printf("Twój najmniejszy element to: %f \n", minn);
}

 

komentarz 20 stycznia przez Oscar Nałogowiec (25,670 p.)
Deklaracja tablicy musi być umieszczona za miejscem, gdzie już wiadomo jak duża ma być.
komentarz 20 stycznia przez wyntia Nowicjusz (120 p.)
niestety, ale nadal nie działa mi podfunkcja nawet z tą zmianą :(
komentarz 20 stycznia przez Oscar Nałogowiec (25,670 p.)
A zwracasz gdzieś wynik (return) ? Kompilator powinien wygenerować ostrzeżenie.

Do funkcji przekazujesz wskaźnik na/za koniec tablicy.
komentarz 21 stycznia przez wyntia Nowicjusz (120 p.)
Wywołuje tą funkcję w main. W innych programach nigdy mi się taki błąd nie pokazywał jak tak robiłam. Kompilator zwraca mi błąd "no matching function for call to 'min'. Myślę, że błąd ten może byc spowodowany wskaźnikami, ale nie jestem pewna.
komentarz 21 stycznia przez Whiskey_Taster Stary wyjadacz (13,620 p.)
Twoja tablica ma typ int, zaś w funkcji min ma typ float. Poza tym, jak już zostało wspomniane, przekazujesz wskaźnik wskazujący na adres, który jest poza tablicą.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
0 odpowiedzi 104 wizyt
pytanie zadane 5 stycznia 2019 w C i C++ przez MS Początkujący (430 p.)
0 głosów
1 odpowiedź 56 wizyt
pytanie zadane 4 maja 2020 w C i C++ przez Quba Użytkownik (740 p.)
0 głosów
2 odpowiedzi 367 wizyt
pytanie zadane 16 marca 2020 w C i C++ przez Hubertius Bywalec (2,970 p.)

88,330 zapytań

136,922 odpowiedzi

305,591 komentarzy

58,601 pasjonatów

Motyw:

Akcja Pajacyk

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

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...