|
|
|
|
|
e-learning
Probajte demo
DL podrška
studentski servis
Login
Gost nalog
prijava za upis
Online prijava
Dokumentacija za upis
 

Početna »
  


  PRETRAGA
  PRIJAVA
Prijavite se za newsletter i slaćemo vam najnovije vesti i aktuelnosti sa ITS-a
  PROGRAMSKI JEZIK C - PRIMER 057

///////////////////////////////////////////////////////////////////////
// ITS - Visoka Škola Strukovnih Studija Za Informacione Tehnologije
// http://www.its.edu.rs/
// Predmet: Osnovi Programiranja - Programski jezik C
//
// Primer: Program za izracunavanje zbira elemenata ispod sporedne
//           dijagonale kvadratne matrice
///////////////////////////////////////////////////////////////////////


#include <stdio.h>
#include <stdlib.h>

main()
{
  int **matrica;
  int n, i, j, k, temp, suma=0, x=0; // x je pomocna promenljiva za racunanje zbira

  // poruka korisniku
  printf("Unesite broj vrsta i kolona kvadratne matrice:\n");

  // unos sa tastature
  scanf("%d", &n);

  if(n<=0)
  {
    // poruka korisniku
    printf("Potrebno je da unesete pozitivan ceo broj.\n");
    return 1; // izlaz iz programa
  }

  // alokacija memorije
  matrica=malloc(n*sizeof(int*));

  if(matrica==NULL) // u slucaju neuspele alokacije
  {
    printf("Doslo je do greske u alokaciji memorije.\n");
    return 1; // izlaz iz programa
  }


  for(i=0; i<n; i++)
  {
    // alokacija memorije
    *(matrica + i)=malloc(n*sizeof(int));

    if(*(matrica + i)==NULL) // u slucaju neuspele alokacije
    {
      printf("Doslo je do greske u alokaciji memorije.\n");
      for(k=0; k<i; k++) // oslobadjanje memorije
        free(*(matrica + k));
      free(matrica);
      return 1;
    }

  }

  for(i=0; i<n; i++)
  {
    for(j=0; j<n; j++)
    {
      // poruka korisniku
      printf("x[%d][%d] = ", i, j);
      // unos elemenata matrice sa tastature
      scanf("%d", &temp);
      *(*(matrica+i)+j) = temp;
    }
  }

  for(i=n-1; i>=0; i--)
  {
    x++;
    for(j=n-1; j>=x; j--)
    {
      temp = *(*(matrica+i)+j);
      // izracunavanje zbira
      suma+=temp;
    }
  }
 
  // stampanje rezultata
  printf("Zbir elemenata ispod sporedne dijagonale iznosi %d\n\n", suma);

  // oslobadjanje memorije
  for(i=0; i<n; i++)
    free(*(matrica + i));
  free(matrica);

  return 0;
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



Broj mesta je ograničen! Prijavite se na vreme.