PITANJA ZA PONAVLJANJE
1. Objasni što je niz podataka u programiranju.
Niz podataka je strukturirani podatkovni tip koji omogućava spremanje više
elemenata istog tipa pod zajedničkim imenom. Svaki element niza može se
dohvatiti pomoću indeksa.
16. Napiši deklaraciju niza u C++ u koji će se spremati najviše 6 cijelih brojeva.
int niz[6];
5. Kako C/C++ indeksira pojedine članove niza? Objasni i navedi primjer.
U C/C++ jeziku, indeksi nizova počinju od nule. To znači da prvi element ima indeks
0, drugi element ima indeks 1 i tako dalje.
int niz[3] = {10, 20, 30};
printf("%d", niz[0]); // Ispisuje 10
printf("%d", niz[2]); // Ispisuje 30
6. Napiši funkciju za inicijalizaciju niza brojeva: 2, 4, 6, 8, 10, 12, 14, 16.
void inicijalizirajNiz(int niz[], int velicina) {
for (int i = 0; i < velicina; i++) {
niz[i] = 2 * (i + 1);
}
}
10. Napiši funkciju koja ispisuje sve elemente niza cijelih brojeva.
void ispisiNiz(int niz[], int velicina) {
for (int i = 0; i < velicina; i++) {
printf("%d ", niz[i]);
}
printf("\n");
}
11. Napiši funkciju koja pretražuje niz kako bi pronašla određeni element.
int pretraziNiz(int niz[], int velicina, int trazeni) {
for (int i = 0; i < velicina; i++) {
if (niz[i] == trazeni) {
return i; // Vraća indeks pronađenog elementa
}
}
return -1; // Element nije pronađen
}
12. Prikaži tablicom elemente niza: float x[9] = {3.3, 2.2, 3.3, -4.1, 3.3, 0.2}.
Indek Vrijedno
s st
0 3.3
1 2.2
2 3.3
3 -4.1
4 3.3
5 0.2
13. Napiši funkciju koja ispisuje sve elemente niza koji su jednaki broju 3.3.
void ispisiJednake(float niz[], int velicina, float broj) {
for (int i = 0; i < velicina; i++) {
if (niz[i] == broj) {
printf("%.1f ", niz[i]);
}
}
printf("\n");
}
28. Napiši program koji unosi dva stringa i određuje njihovu duljinu, uspoređuje ih te
ih spaja u jedan string.
#include <stdio.h>
#include <string.h>
int main() {
char str1[50], str2[50], spojeni[100];
printf("Unesi prvi string: ");
gets(str1);
printf("Unesi drugi string: ");
gets(str2);
printf("Duljina prvog stringa: %lu\n", strlen(str1));
printf("Duljina drugog stringa: %lu\n", strlen(str2));
printf("Usporedba: %d\n", strcmp(str1, str2));
strcpy(spojeni, str1);
strcat(spojeni, str2);
printf("Spojeni string: %s\n", spojeni);
return 0;
}
18. Napiši funkciju za sortiranje niza metodom mjehuričastog sortiranja.
cpp
KopirajUredi
void bubbleSort(int niz[], int velicina) {
for (int i = 0; i < velicina - 1; i++) {
for (int j = 0; j < velicina - i - 1; j++) {
if (niz[j] > niz[j + 1]) {
int temp = niz[j];
niz[j] = niz[j + 1];
niz[j + 1] = temp;
}
}
}
}
26. Napiši program koji učitava dva niza realnih brojeva, računa njihov umnožak i
sprema rezultate u novi niz.
#include <stdio.h>
int main() {
int n;
printf("Unesi broj elemenata: ");
scanf("%d", &n);
float niz1[n], niz2[n], umnozak[n];
printf("Unesi elemente prvog niza:\n");
for (int i = 0; i < n; i++) scanf("%f", &niz1[i]);
printf("Unesi elemente drugog niza:\n");
for (int i = 0; i < n; i++) scanf("%f", &niz2[i]);
int negativni = 0;
for (int i = 0; i < n; i++) {
umnozak[i] = niz1[i] * niz2[i];
if (umnozak[i] < 0) negativni++;
}
printf("Umnozak nizova:\n");
for (int i = 0; i < n; i++) printf("%.2f ", umnozak[i]);
printf("\nNegativnih umnožaka: %d\n", negativni);
return 0;
}
1. Objasni što je pokazivač u C/C++ i kako se deklarira.
Pokazivač je varijabla koja čuva memorijsku adresu druge varijable. Deklaracija
pokazivača:
int *pokazivac;
10. Napiši blok naredbi kojim se pomoću pokazivača ispisuje prvi i peti član niza.
int niz[5] = {10, 20, 30, 40, 50};
int *p = niz;
printf("Prvi član: %d\n", *p);
printf("Peti član: %d\n", *(p + 4));
15. Napiši program koji koristi pokazivače za usporedbu prvih 5 znakova dvaju
stringova.
#include <stdio.h>
#include <string.h>
int main() {
char str1[50], str2[50];
printf("Unesi prvi string: ");
gets(str1);
printf("Unesi drugi string: ");
gets(str2);
int rezultat = strncmp(str1, str2, 5);
if (rezultat == 0)
printf("Prvih 5 znakova je isto.\n");
else
printf("Prvih 5 znakova je različito.\n");
return 0;
}
28. Napiši program koji dinamički alocira memoriju za niz od 10 cijelih brojeva i
popunjava ga unosom s tipkovnice.
#include <stdio.h>
#include <stdlib.h>
int main() {
int *niz = (int *)malloc(10 * sizeof(int));
if (niz == NULL) {
printf("Neuspješna alokacija memorije.\n");
return 1;
}
printf("Unesi 10 cijelih brojeva:\n");
for (int i = 0; i < 10; i++) {
scanf("%d", &niz[i]);
}
printf("Uneseni brojevi su:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", niz[i]);
}
printf("\n");
free(niz);
return 0;
}