Skocz do zawartości
tomek3232

[c] Jak Korzystać Funkcji

Rekomendowane odpowiedzi

Witam

Chciałem napisać programik w c który by wprowadzał dane do tablicy korzystając z funkcji i wypisywał je na ekranie obojętnie w jaki sposób (programik do nauki korzystania z funkcji)

Napisałem coś takiego:

# include <stdio.h>int wprowadzanie(int);main(){int j;int tablica1[10];	wprowadzanie(tablica1[10]);for (j=0; j<10; j++)	 printf ("%d", tablica1[j]);int wprowadzanie(int tablica1[10]){int i;for (i=0; i<10; i++)	 scanf("%d", &tablica1[i]);}return 0;}
niestety kompilator zawraca mi takie błędy

Compiling NONAME00.CPP:

Error NONAME00.CPP 11: Declaration syntax error

Warning NONAME00.CPP 17: Function should return a value

 

I czy ktoś mi powie gdzie robie błąd a raczej błędy ?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

#include <stdio.h>int wprowadzanie(int *);int main() { int j; int tablica[10];  wprowadzanie(tablica);  for (j = 0; j < 10; j++) printf ("%d", tablica[j]);  return 0;}int wprowadzanie(int *tabl) { int i; for (i = 0; i < 10; i++) scanf("%d", &tabl[i]);	  return 0;}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

ok

wielkie dzięki ale czy mógłbyś mi wyjaśnić kilka rzeczy

jakie zadanie ma ta gwiazdka "*" którą zastosowałeś w programie (czy jest to wskaźnik ?)

i skąd program wie skąd odczytać tablice bo przy wprowadzaniu podałeś *tabl

a przy odczytywaniu jest napisane "tablica" printf ("%d", tablica[j]);

czy mógłbyś mi to wyjaśnić ?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

To co przekazujesz do funkcji i potem uzywasz w jej ciele nie ma zadnego zwiazku z nazwa. Mozesz wywolac fun( kotek ), a ciaglo funkcji moze wygladac

 

void fun( int piesek ) { ... }

 

Dalej bedzie to ta sama wartosc, dokladnie... przekazanie przez wartosc :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Program "wie" bo:

 

wprowadzanie(tablica);

A gwiazdka to wskaźnik (adres do zerowego elementu tablicy).

 

 

a przy odczytywaniu jest napisane "tablica" printf ("%d", tablica[j]);

Jak pewnie zauważyłeś jest ona w funkcji main, a main nie wie co to tabl.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

edycja

Nieaktualne już sobie poradziłem ;)

 

wielkie dzięki za pomoc już zrozumiałem ale mam następny problem

ponieważ chce wprowadzać 2 tablice 2-wymiarowe za pomocą jednej funkcji (chce aby jeden algorytm wprowadzał 2 tablice, a nie 2 algorytmy w 1 funkcji )

Napisałem coś takiego ale i działa dla wprowadzania dla 1 macierzy ale jak chce wywołać wprowadzanie dla 2 tablicy to niestety program mi się nie kompiluje.

próbuje wywołać wprowadzanie 2 macierzy za pomocą takiego polecenia

wprowadzanie(wsktab1);
I jest to chyba logiczne ze program nie działa prawidłowo choćby dlatego ze w ciele funkci pojawia się nazwa tablicy (tab1).

Tylko ze nie mam zielonego pojęcia jak to zrobić prawidłowo

Prosze o jakieś sugestie lub poprawki w programie (o ile można go tak nazwać)

# include <stdio.h>int i, j;void wprowadzanie(int *);main (){int i, j;int tab1[3][3], tab2[3][3];int *wsktab1;int *wsktab2;wsktab1 = &tab1[0][0];wsktab2 = &tab2[0][0];wprowadzanie(wsktab1);//wyswietlanie tablicyfor (i=0; i<3; i++)  {  for (j=0; j<3; j++)	{	printf("%d \t", tab1[i][j]);	}   printf("\n");   }for (i=0; i<3; i++)  {  for (j=0; j<3; j++)	{	printf("%d \t", tab1[i][j]);   }   printf("\n");   }return 0;}//wprowadzanie tablicyvoid wprowadzanie(int *tab1){for (i=0; i<3; i++)   for (j=0; j<3; j++)   	scanf("%d", &*(tab1+i*3+j));}
Edytowane przez tomek3232

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...