You are on page 1of 6

Rjeenja - pokazivai (2.

dio)

1. zadatak

#include <stdio.h>

#include <stdlib.h>

//skalarni produkt dva vektora!

int main(){

float *v1;

float *v2;

int i;

int N;

printf ("N = ");

scanf("%d", &N);

v1 = malloc(N*sizeof(int));

v2 = malloc(N*sizeof(int));

printf ("v1:\n");

for (i = 0; i < N; i++)

scanf("%f", &v1[i]);

printf ("v2_\n");

for (i = 0; i < N; i++)

scanf("%f", &v2[i]);

float rez = 0.0;

for (i = 0; i < N; i++){

rez += v1[i]*v2[i];

printf ("Skalarni produkt iznosi %f\n", rez);

return 0;
}

2. zadatak

#include <stdio.h>

#include <stdlib.h>

double **alloc_matrix(int m, int n)

int i;

double **a;

a = (double**)malloc(m * sizeof(double*));

if (a == NULL) {

fprintf(stderr, "Failed allocation\n!");

return NULL;

a[0] = (double*)malloc(m * n * sizeof(double));

if (a[0] == NULL) {

fprintf(stderr, "Failed allocation!\n");

free(a);

return NULL;

for (i = 1; i < m; i++)

a[i] = a[0] + i * n;

return a;

double **alloc_matrix2(int m, int n)


{

int i;

double **a;

a = (double**)malloc(m * sizeof(double*));

if (a == NULL) {

fprintf(stderr, "Failed allocation!\n");

return NULL;

for (i = 0; i < m; i++){

a[i] = (double*)malloc(n * sizeof(double));

if (a[i] == NULL) {

fprintf(stderr, "Failed allocation!\n");

return a;

void ispis(double** matrica, int m, int n){

int i, j;

for (i = 0; i < m; i++){

for (j = 0; j < n; j++)

printf ("%lf\t", matrica[i][j]);

printf ("\n");

return;

int main(){
double **matrica;

int N;

int i, j;

printf ("N = ");

scanf ("%d", &N);

matrica = alloc_matrix2(N, N);

//matrica = alloc_matrix(N, N);

printf("Elementi kvadratne matrice :\n");

for (i = 0; i < N; i++)

for (j = 0; j < N; j++)

scanf ("%lf", &matrica[i][j]);

ispis(matrica, N, N);

//printf ("sizeof(matrica) = %ld\n", sizeof(matrica));

return 0;

3. zadatak

#include <stdio.h>

#include <math.h>

double f1(double x){

return 0.25*x*x*x+0.5*x*x;

double f2(double x){

return x+exp(-x);

}
double (*fun_p1)(double);

double (*fun_p2)(double);

double integral(double x1, double x2, double (*f)(double)){

return 0.5*(x2-x1)*((*f)(x1)+(*f)(x2));

int main(){

const int N = 10;

int i;

double h;

double a = 0.0, b = 1.0;

double rez1 = 0.0, rez2 = 0.0;

double x1, x2;

h = (b-a)/N;

x1 = a;

x2 = a + h;

fun_p1 = &f1;

fun_p2 = &f2;

for (i = 0; i < N; i++){

rez1 += integral(x1, x2, fun_p1);

rez2 += integral(x1, x2, fun_p2);

x1 = x2;

x2 += h;

printf("Rez1 = %lf\n", rez1);

printf("Rez2 = %lf\n", rez2);


return 0;

You might also like