tomek3232 Opublikowano 14 Maja 2007 Zgłoś Opublikowano 14 Maja 2007 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 ? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
kfgz Opublikowano 14 Maja 2007 Zgłoś Opublikowano 14 Maja 2007 #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;} Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
tomek3232 Opublikowano 14 Maja 2007 Zgłoś Opublikowano 14 Maja 2007 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ć ? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
MeHow Opublikowano 15 Maja 2007 Zgłoś Opublikowano 15 Maja 2007 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 :) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
kfgz Opublikowano 15 Maja 2007 Zgłoś Opublikowano 15 Maja 2007 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. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
tomek3232 Opublikowano 21 Maja 2007 Zgłoś Opublikowano 21 Maja 2007 (edytowane) 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 21 Maja 2007 przez tomek3232 Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...