program w C (wskaźniki)

piasektt
Użytkownik
Użytkownik
Posty: 195
Rejestracja: 14 paź 2007, o 20:59
Płeć: Mężczyzna
Lokalizacja: MM
Podziękował: 29 razy

program w C (wskaźniki)

Post 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; 
}
jasny
Użytkownik
Użytkownik
Posty: 845
Rejestracja: 2 kwie 2006, o 23:32
Płeć: Mężczyzna
Lokalizacja: Limanowa
Pomógł: 191 razy

program w C (wskaźniki)

Post 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; ...
Moraxus
Użytkownik
Użytkownik
Posty: 223
Rejestracja: 23 lis 2008, o 18:10
Płeć: Mężczyzna
Podziękował: 3 razy
Pomógł: 79 razy

program w C (wskaźniki)

Post 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.
Ostatnio zmieniony 22 maja 2009, o 14:36 przez Moraxus, łącznie zmieniany 1 raz.
matshadow
Użytkownik
Użytkownik
Posty: 941
Rejestracja: 17 gru 2007, o 21:48
Płeć: Mężczyzna
Lokalizacja: Kingdom Hearts
Podziękował: 6 razy
Pomógł: 222 razy

program w C (wskaźniki)

Post autor: matshadow »

i ma być bodajże getch(); a nie getche();
piasektt
Użytkownik
Użytkownik
Posty: 195
Rejestracja: 14 paź 2007, o 20:59
Płeć: Mężczyzna
Lokalizacja: MM
Podziękował: 29 razy

program w C (wskaźniki)

Post autor: piasektt »

Dzięki za odpowiedzi, odezwe sie jeszcze czy mi sie udalo.
ODPOWIEDZ