Tablica przechowuje ciąg elementów tego samego typu, np. liczb całkowitych typu int.
Tablica posiada swoją nazwę, ma określony typ elementów składowych oraz rozmiar.
Deklaracja tablicy wygląda w następujący sposób:
int t[10];
Powyższa instrukcja tworzy tablicę o nazwie t, która pomieści 10 liczb całkowitych typu int.
Do poszczególnych elementów tablicy odnosimy się poprzez numer elementu, gdzie elementy są numerowane (indeksowane) liczbami: 0, 1, 2, 3, …
Przykłady posługiwania się tablicami:
float tablica[100];
tablica[0] = 1.23;
tablica[99] = 1.0 / 3;
tablica[1] = tablica[0] - 1 ;
* Elementy tablicy są numerowane od 0.
* Wynika z tego, że dla N elementowej tablicy ostatni dozwolony indeks to N-1.
* Przekroczenie zakresu tablicy może się zakończyć błędem w czasie działania.
Przykład niepoprawnego użycia tablicy:
int x[10];
x[10] = 42;
W typowych zastosowaniach iteruje się po kolejnych elementach tablicy za pomocą pętli while lub for.
Przykład: wyzerowanie wszystkich elementów tablicy:
int i = 0;
int tab[100];
while( i < 100)
{
tab[i] = 0;
i = i + 1;
}
Pętla for pozwala zrealizować to samo w bardziej zwięzły sposób, np,:
int i;
int tab[100];
for (i=0; i<100; i++) tab[i] = 0;
Jeżeli chcemy skopiować zawartość tablicy do innej tablicy wówczas należy przekopiować każdy element osobno.
Przykładowo, dla danych tablic a i b kopiowanie pierwszych 10-ciu elementów może wyglądać tak:
int i = 0;
while ( i < 10 )
{
a[i] = b[i];
i++;
}
Poniższy program wyznacza sumę oraz wartość średnią N liczb rzeczywistych podanych przez użytkownika.
#include <stdio.h>
int main()
{
int n, i;
float tablica[100];
float suma = 0.0;
printf("Ile liczb: ");
scanf("%d", &n);
printf("Podaj kolejne liczby:\n");
i=0;
while(i<n)
{
scanf("%f", &tablica[i]);
i++;
}
for(i=0; i<n; i++)
suma = suma + tablica[i];
printf("Suma = %f\n", suma);
printf("Srednia = %f\n", suma/n);
return 0;
}
N (ilość liczb)? Co się stanie dla $N=101$ ?
Napisz program, który wczyta n liczb rzeczywistych a następnie wyświetli je w odwrotnej kolejności.
Dane: liczba n określająca ilość liczb oraz sekwencja n liczb rzeczywistych. Zakładamy, że n < 1000
Wynik: sekwencja n liczb rzeczywistych w odwrotnej kolejności niż podana na wejściu.
Przykład:
n=5 1.3 0.0 -2 6 3.14
Wynik:
3.14 6 -2 0.0 1.3
Napisz program o nazwie sortowanie.c, który posortuje ciąg liczb rzeczywistych w kolejności od najmniejszej do największej.
Spróbuj samodzielnie zaprojektować i zaimplementować algorytm sortowania.
Dane wejściowe (podaje użytkownik):
n określająca ilość liczb n liczb rzeczywistych (zakładamy, że liczb nie będzie więcej niż 1000)Wynik:
n liczb wypisanych w kolejnych liniach w rosnącej kolejności.Przykład:
n=5 1.3 0.0 2 6 3.14
Wynik:
0.000000 1.300000 2.000000 3.140000 5.000000 6.000000
Rozwiązanie w postaci pliku zawierającego program w języku C umieść tutaj