Найти элементы матрицы, которые превышают все элементы, лежащие ниже главной диагонали - C (СИ) (75314)
Формулировка задачи:
Дана матрица. Среди элементов матрицы лежащих выше главной диагонали найти те, которые превышают все элементы лежащие ниже главной диагонали. Вычислить их сумму.
можете проверить правильно ли?
Листинг программы
- #include <stdio.h>
- #include <math.h>
- #include <conio.h>
- #include <stdlib.h>
- #define N 150
- #define M 180
- int main()
- {
- int i,j,s,t,k=0,p,r;
- int **a, *sr, *c,under_max=0,su=0;
- puts("Wwedite kol-wo stolbzow");
- scanf("%d",&s);
- if(s>N)s=N;
- puts("Wwedite kol-wo strok");
- scanf("%d",&t);
- if(t>M)t=M;
- a=(int **)malloc(sizeof(int *)*s);
- for (i=0;i<s;i++)
- {a[i]=(int *)malloc(sizeof(int)*t);
- if (a[i]==NULL)
- { puts("ne sozdan dinamischeskij massiw");
- return 0;}}
- sr=(int *)malloc(t*sizeof(int));
- puts("Wwedite matrizu");
- for(i=0;i<s;i++){
- for(j=0;j<t;j++){scanf("%d",&a[i][j]);}}
- for(i=0;i<s;i++){
- for(j=0;j<t;j++)
- if (i>j && a[i][j]>under_max)
- under_max=a[i][j];
- }
- for (i=0; i<s; i++)
- for (j=0; j<t; j++)
- if (i<j && a[i][j]>under_max)
- {
- printf("%d ",a[i][j]);
- sr[i]=a[i][j];
- su+=sr[i];
- }
- printf("\nSumma = %d",su);
- free(a);
- free(a);
- free(sr);
- system ("pause");
- return 0;
- }
Решение задачи: «Найти элементы матрицы, которые превышают все элементы, лежащие ниже главной диагонали»
textual
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- #include <conio.h>
- #include <memory.h>
- #define N 10
- int main(int argc, char* argv[])
- {
- int** A = new int*[N];
- memset((void*)A, 0x00, sizeof(int*) * N);
- for (int i = 0; i < N; i++)
- {
- A[i] = new int[N];
- for (int j = 0; j < N; j++)
- {
- A[i][j] = rand() % N + 1;
- printf("%d ",A[i][j]);
- }
- printf("\n");
- }
- printf("\n");
- int max_i = 1, max_j = 0;
- for (int i = 1; i < N; i++)
- for (int j = 0; j < i; j++)
- if (A[i][j] > A[max_i][max_j])
- {
- max_i = i;
- max_j = j;
- }
- for (int i = 0; i < N; i++)
- for (int j = i; j < N; j++)
- if (A[i][j] >= A[max_i][max_j])
- printf("A[%d][%d] = %d\n",i,j,A[i][j]);
- _getch();
- return 0;
- }
Объяснение кода листинга программы
- Создается двумерный массив (матрица) случайных целых чисел.
- Находится максимальное значение в матрице.
- В цикле обходятся все элементы матрицы. Если значение текущего элемента больше максимального, то он выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д