kacxsku

Untitled

May 2nd, 2020
432
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.69 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #pragma warning(disable:4996)
  4. void fill(double **arr, int n);//wypelnianie macierzy
  5. void show(double **arr, int n);//wypisywanie macierzy na ekran
  6. double add(double **, int,  double, double);//sumowanie pod przekatna macierzy w zadanym przedziale
  7. int main()
  8. {
  9.     double **tab,a,b;
  10.     int n;
  11.     printf("podaj wymiary macierzy :\n");
  12.     scanf("%d", &n);
  13.     tab = (double **)malloc(sizeof(double*)*n);//dynamiczne alokowanie pamieci
  14.         if (!tab) printf("blad alokacji");
  15.     for (int i = 0;i < n;i++)
  16.     {
  17.         tab[i] = (double *)malloc(sizeof(double)*n);
  18.         if (!tab[i]) printf("blad alokacji");
  19.     }
  20.     printf("podaj przedzial:\n");
  21.     scanf("%lf", &a);
  22.     scanf("%lf", &b);
  23.     fill(tab,n);
  24.     show(tab, n);
  25.     printf("\n\n");
  26.     printf("suma elementow lezacych ponizej przekatnej i nalezacych do przedzialu (%lf,%lf) to %lf\n", a, b, add(tab, n, a, b));
  27.     if (tab)//zwalnianie pamieci
  28.     {
  29.         for (int i = 0;i < n;i++)
  30.         {
  31.             if (tab[i])
  32.             {
  33.                 free(tab[i]);
  34.             }
  35.         }
  36.         free(tab);
  37.         tab = NULL;
  38.     }
  39.     return 0;
  40. }
  41. void fill(double **arr, int n)
  42. {
  43.     printf("wypelnij macierz:\n");
  44.     for (int i = 0; i < n; i++)
  45.     {
  46.         getchar();
  47.         for (int j = 0; j < n; j++)
  48.             scanf("%lf", &arr[i][j]);
  49.     }
  50. }
  51.  
  52. void show(double **arr, int n)
  53. {
  54.     int i = 0,j = 0;
  55.     printf("twoja macierz to :\n");
  56.     for (i = 0;i < n;i++)
  57.     {
  58.         for (j = 0;j < n;j++)
  59.         {
  60.             printf("%lf\t", arr[i][j]);
  61.         }
  62.         printf("\n");
  63.     }
  64. }
  65. double add(double **arr, int n, double a, double b)
  66. {
  67.     int i = 0;
  68.     int j = 0;
  69.     int suma = 0;
  70.     for (i = 0;i < n;i++)
  71.     {
  72.         for (j = 0;j < n;j++)
  73.         {
  74.             if (i > j && arr[i][j] > a && arr[i][j] < b) //przedzial otwarty
  75.             {
  76.                 suma += arr[i][j];
  77.             }
  78.         }
  79.     }
  80.     return suma;
  81. }
Advertisement
Add Comment
Please, Sign In to add comment