----------------------------------------------------------------------------
1) Trivijalni program
#include <stdio.h>
int main()
{
printf("Strukture podataka\n");
return 0;
}
----------------------------------------------------------------------------
2) Zbrajanje
#include <stdio.h>
int main()
{
int prvi, drugi;
printf("Unesi prvi broj: ");
scanf("%d", &prvi);
printf("Unesi drugi broj: ");
scanf("%d", &drugi);
printf("%d + %d = %d\n", prvi, drugi, prvi + drugi);
return 0;
}
----------------------------------------------------------------------------
3) Kvadratna jednadzba
#include <stdio.h>
#include <math.h>
int main()
{
float a, b, c;
float D;
float x1, x2;
printf("Unesi a: ");
scanf("%f", &a);
printf("Unesi b: ");
scanf("%f", &b);
printf("Unesi c: ");
scanf("%f", &c);
D = b * b - 4 * a * c;
if(D >= 0)
{
x1 = (-b - sqrt(D)) / (2 * a);
x2 = (-b + sqrt(D)) / (2 * a);
printf("x1 = %f\n", x1);
printf("x2 = %f\n", x2);
}
else
printf("Rjesenja su kompleksni brojevi!");
return 0;
}
----------------------------------------------------------------------------
4) Pronalazenje najveceg elementa u (nesortiranom) polju
#include <stdio.h>
int main()
{
int a[10], i;
for(i = 0; i < 10; i++)
{
printf("Unesi %d. broj: ", i + 1);
scanf("%d", &a[i]);
}
printf("\n");
int max = a[0];
for(i = 1; i < 10; i++)
if (a[i] > max)
max = a[i];
printf("Najveci uneseni broj je %d\n", max);
return 0;
}
---------------------------------------------------------------------------
5) Sortiranje (s mjerenjem vremena)
#include <stdio.h>
#include <time.h>
void InsertionSort(int a[], int n);
int main()
{
int a[10] = {4, 7, 3, 9, 0, 1, 6, 8, 2, 5};
double timedif;
double time1 = (double)clock();
time1 = time1/(double)CLOCKS_PER_SEC;
InsertionSort(a, 10);
for(int i = 0; i < 10; i++)
printf("%d ", a[i]);
printf("\n");
timedif = (((double)clock()) / (double)CLOCKS_PER_SEC) - time1;
printf("Program je radio %f sekundi\n", timedif);
return 0;
}
void InsertionSort(int a[], int n)
{
for(int j = 2; j < n; j++)
{
int k = a[j];
int i = j - 1;
while(a[i] > k && i >= 0)
{
a[i + 1] = a[i];
i--;
}
a[i + 1] = k;
}
}
----------------------------------------------------------------------------
6) Pogađanje brojeva
Funkcija rand() vraća slučajan broj između 0 i RAND_MAX. (Obično je RAND_MAX jednak 32767).
Ako želimo dobiti slučajan prirodan broj između m i n (m < n) uključujući i granice m i n, tada treba napraviti ovo:
int x = m + (n - m + 1) * ((float)rand() / (RAND_MAX + 1));
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int br;
int pogodak = 0;
srand(time(NULL));
int x = 1 + 100 * ((float)rand() / (RAND_MAX + 1));
printf("Zamislio sam broj izmedju 1 i 100. Pogodi ga!\n");
int brpok = 0;
while(pogodak == 0)
{
printf("Unesi broj: ");
scanf("%d", &br);
brpok++;
if(br == x)
{
printf("Bravo! Pogodio si u pokusaju br. %d\n", brpok);
pogodak = 1;
}
else
{
if (x > br)
printf("Trazeni broj je veci!\n");
else
printf("Trazeni broj je manji!\n!!");
}
}
return 0;
}
----------------------------------------------------------------------------
7) Funkcije ne mijenjaju svoje ulazne varijable!
#include <stdio.h>
void func(int);
int main()
{
int a = 1;
printf("Prije poziva funkcije func: a = %d\n", a);
func(a);
printf("Nakon poziva funkcije func: a = %d\n", a);
return 0;
}
void func(int a)
{
a = a + 100;
}
----------------------------------------------------------------------------
8) Funkcije mijenjaju polja!
#include <stdio.h>
void func(int[]);
int main()
{
int i;
int a[3] = {0, 1, 2};
printf("Prije poziva funkcije func:\n");
for(i = 0; i < 3; i++)
printf("%d ", a[i]);
printf("\n\n");
func(a);
printf("Nakon poziva funkcije func:\n");
for(i = 0; i < 3; i++)
printf("%d ", a[i]);
printf("\n");
return 0;
}
void func(int a[])
{
a[0] = a[0] + 100;
}
----------------------------------------------------------------------------