Przekazywanie tablic do funkcji
Porównaj poniższy program:
#include <stdio.h> void test1(int a){ printf("wewnatrz test1: %d\n", a); a = 2*a + 1; printf("wewnatrz test1: %d\n", a); } int main(){ int n = 10; printf("wewnatrz main: %d\n", n); test1(n); printf("wewnatrz main: %d\n", n); return 0; }
oraz:
#include <stdio.h> void test2(int tab[]){ printf("wewnatrz test2: %d\n", tab[0]); tab[0] = 2*tab[0] + 1; printf("wewnatrz test2: %d\n", tab[0]); } int main(){ int t[1]; t[0] = 10; printf("wewnatrz main: %d\n", t[0]); test2(t); printf("wewnatrz main: %d\n", t[0]); return 0; }
Zadania
-
Napisz funkcję, która przyjmuje jako parametr tablicę liczb całkowitych oraz jej rozmiar. Funkcja ma wypisywać zawartość tablicy na ekran.
-
Zmodyfikuj funkcję z zad. 1 tak, aby przyjmowała zamiast rozmiaru tablicy dwa indeksy: początkowy i końcowy i wypisywała elementy o indeksach od początkowego do końcowego.
-
Napisz funkcję, która przyjmuje dwie tablice liczb zmiennoprzecinkowych oraz ich wspólny rozmiar. Funkcja ma przepisać zawartość pierwszej tablicy do drugiej.
-
Zmodyfikuj funkcję z zad. 3 tak, aby zapisywała elementy w drugiej tablicy w odwrotnej kolejności.
-
Napisz funkcję, która odwraca kolejność elementów w tablicy (bez użycia tablicy pomocniczej).
-
Napisz funkcję, która cyklicznie przesuwa w prawo elementy tablicy o zadaną liczbę. Na przykład dla tablicy
{1, 2, 3, 4, 5, 6}
i przesunięcia2
tablica powinna wyglądać:{5, 6, 1, 2, 3, 4}
. -
Napisz funkcję, która otrzymuje 4 parametry: liczbę naturalną
size
oraz tablice liczb zmiennoprzecinkowychdouble
:tab1
,tab2
itab3
o rozmiarzesize
. Funkcja ma przepisać zawartość tablicytab1
do tablicytab2
, zawartośćtab2
dotab3
, natomiasttab3
dotab1
. -
Napisz funkcję, która przyjmuje 3 tablice typu
int
i liczbę całkowitąn
. Pierwsza tablica ma rozmiar2*n
, a dwie pozostałe mają rozmiarn
. Funkcja ma skopiować wszystkie elementy drugiej tablicy na parzyste miejsca w tablicy pierwszej i wszystkie elementy tablicy trzeciej na nieparzyste miejsca w tablicy pierwszej. -
Napisz funkcję, która przyjmuje jako parametr tablicę 10 liczb całkowitych. Funkcja powinna wczytać od użytkownika 10 liczb do tablicy i nie pozwolić na wielokrotne podanie tej samej liczby — w przypadku gdy użytkownik poda którąś z liczb po raz drugi, funkcja ma wypisać wszystkie do tej pory wczytane liczby i poprosić użytkownika o podanie innej wartości.
-
Napisz funkcję, która otrzymuje dwa parametry: liczbę
n
orazn
-elementową tablicętab
o elementach typuint
i zwraca indeks największego elementu tablicy tab. -
Napisz funkcję otrzymującą dwa parametry: tablicę liczb całkowitych oraz jej rozmiar i zwracającą jako wartość indeks drugiego co do wartości elementu tablicy podanej w argumencie.
-
Napisz funkcję, która dostaje jako parametry tablicę
tab
liczb całkowitych oraz jej rozmiar i nadaje wartość0
wszystkim komórkom tablicytab
o powtarzających się wartościach (czyli "zeruje" wszystkie wystąpienia danej wartości poza pierwszym).