Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- #pragma warning(disable:4996)
- void fill(double **arr, int n);//wypelnianie macierzy
- void show(double **arr, int n);//wypisywanie macierzy na ekran
- double add(double **, int, double, double);//sumowanie pod przekatna macierzy w zadanym przedziale
- int main()
- {
- double **tab,a,b;
- int n;
- printf("podaj wymiary macierzy :\n");
- scanf("%d", &n);
- tab = (double **)malloc(sizeof(double*)*n);//dynamiczne alokowanie pamieci
- if (!tab) printf("blad alokacji");
- for (int i = 0;i < n;i++)
- {
- tab[i] = (double *)malloc(sizeof(double)*n);
- if (!tab[i]) printf("blad alokacji");
- }
- printf("podaj przedzial:\n");
- scanf("%lf", &a);
- scanf("%lf", &b);
- fill(tab,n);
- show(tab, n);
- printf("\n\n");
- printf("suma elementow lezacych ponizej przekatnej i nalezacych do przedzialu (%lf,%lf) to %lf\n", a, b, add(tab, n, a, b));
- if (tab)//zwalnianie pamieci
- {
- for (int i = 0;i < n;i++)
- {
- if (tab[i])
- {
- free(tab[i]);
- }
- }
- free(tab);
- tab = NULL;
- }
- return 0;
- }
- void fill(double **arr, int n)
- {
- printf("wypelnij macierz:\n");
- for (int i = 0; i < n; i++)
- {
- getchar();
- for (int j = 0; j < n; j++)
- scanf("%lf", &arr[i][j]);
- }
- }
- void show(double **arr, int n)
- {
- int i = 0,j = 0;
- printf("twoja macierz to :\n");
- for (i = 0;i < n;i++)
- {
- for (j = 0;j < n;j++)
- {
- printf("%lf\t", arr[i][j]);
- }
- printf("\n");
- }
- }
- double add(double **arr, int n, double a, double b)
- {
- int i = 0;
- int j = 0;
- int suma = 0;
- for (i = 0;i < n;i++)
- {
- for (j = 0;j < n;j++)
- {
- if (i > j && arr[i][j] > a && arr[i][j] < b) //przedzial otwarty
- {
- suma += arr[i][j];
- }
- }
- }
- return suma;
- }
Advertisement
Add Comment
Please, Sign In to add comment