Найти элементы матрицы, которые превышают все элементы, лежащие ниже главной диагонали - 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;
}
Объяснение кода листинга программы
- Создается двумерный массив (матрица) случайных целых чисел.
- Находится максимальное значение в матрице.
- В цикле обходятся все элементы матрицы. Если значение текущего элемента больше максимального, то он выводится на экран.