Strona 1 z 1

program w C (wskaźniki)

: 22 maja 2009, o 13:58
autor: piasektt
Witam
Proszę o podpowiedź gdzie jest błąd,lub inny pomysł na program.

Treść zadania:
Zainicjuj tablicę, a następnie przekopiuj jej zawartość do dwóch innych tablic.Użyj funkcji,wykorzystującej notacje wskaźnikową.

Kod: Zaznacz cały

#include <stdio.h> 
#include <conio.h> 


void kopiowanie_tablica(int *tab1, int *tab2, int rozmiar) 
{ 
for(int i=0; i<rozmiar; ++i) 
{ 
tab2[i]=tab1[i]; 
} 
} 

void drukuj(int *tab, int rozmiar) 
{ 
for(int i=0; i<rozmiar; ++i) 
{ 
printf("Element [ %d ]: %d
", i, tab[i]); 

} 
} 

int main(void) 
{ 
int i, rozmiar; 
int tablica1[rozmiar]; 
int tablica2[rozmiar]; 
int r; 
printf("Podaj ilu elementowe maja byc tablice!! :"); 
scanf("%d", &rozmiar); 
printf("
 A teraz podaj elementy pierwszej tablicy:
"); 

for(i=0; i<rozmiar; ++i) 
{ 
scanf("%d", &tablica1[i]); 
} 

printf("Kopiujemy tablice 1 do 2
"); 
kopiowanie_tablica(tablica1, tablica2, rozmiar); 
printf("tablica 1
"); 
drukuj(tablica1, rozmiar); 
printf("Tablica 2
 "); 
drukuj(tablica2, rozmiar); 
getche(); 

return 0; 
}

program w C (wskaźniki)

: 22 maja 2009, o 14:26
autor: jasny
Wszystko jest w porządku poza tym, że w C nie możemy deklarować zmiennych w pętli for, musisz więc wywalić "int i;" gdzieś przed pętle, a w samej pętli dać for (i = 0; ...

program w C (wskaźniki)

: 22 maja 2009, o 14:33
autor: Moraxus
No nie wiem, czy wszystko jest w porządku:

Kod: Zaznacz cały

int i, rozmiar; 
int tablica1[rozmiar]; 
int tablica2[rozmiar]; 
int r; 
printf("Podaj ilu elementowe maja byc tablice!! :"); 
scanf("%d", &rozmiar); 
printf("
 A teraz podaj elementy pierwszej tablicy:
"); 

for(i=0; i<rozmiar; ++i) 
{ 
scanf("%d", &tablica1[i]); 
}
Deklarujesz zmienną rozmiar, ale nie inicjujesz jej więc nie wiesz co się w niej znajduje.
Tak więc coś takiego:

Kod: Zaznacz cały

int tablica1[rozmiar]; 
sprawi, że tablica1 będzie miała nieznaną wielkość.

Powinieneś dynamicznie zaalokować pamięć dla tych tablic.

program w C (wskaźniki)

: 22 maja 2009, o 14:34
autor: matshadow
i ma być bodajże getch(); a nie getche();

program w C (wskaźniki)

: 22 maja 2009, o 16:27
autor: piasektt
Dzięki za odpowiedzi, odezwe sie jeszcze czy mi sie udalo.