Матрица на С
Добавлено: 13 ноя 2008, 01:06
В общем нужна помощь.
Задание: Среди диагоналей квадратной матрицы, параллельных главной диагонали и расположенных выше нее, найти такую, сумма модулей элементов которой минимальна по сравнению с другими диагоналями.
Проблема с выделенным фрагментом. Считаеться только 1 диагональ идущая за главной. А надо просчитать все и выбрать минимальную! Кто знает как это сделать, раскажите пожалуйста!
Задание: Среди диагоналей квадратной матрицы, параллельных главной диагонали и расположенных выше нее, найти такую, сумма модулей элементов которой минимальна по сравнению с другими диагоналями.
Код: Выделить всё
#include <stdio.h>
#include <math.h>
#define MAX 30
int main()
{
int sum,min;
int mt[MAX][MAX];
int n,r,k,
i,j;
printf ("\nDimension of squarte matrix:"); // Ввод порядка матрицы
scanf("%d",&n);
printf("elements of matrix [%d][%d]:\n",n,n);// Ввод элементов матрицы
for (i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
printf ("\nmt[%d,%d]=",(i+1),(j+1));
scanf("%d",&r);
mt[i][j]=r;
}
}
for (i=0; i<n;i++) //Представление матрицы в стандартном виде
{
for (j=0;j<n;j++)
{
printf("%d ",mt[i][j]);
}
printf("\n");
printf("\n");
}
printf("sum ofthe elements higher than main diagonal:\n ");
sum=0;
[B]for(i=0;i<n-1;i++)
for(j=1;j<n-1;j++)
{
sum+=abs(mt[i][j]);
i++;
min=sum;
if (sum <min)
min=sum;
else min=sum;
}
printf("%d\n", min);[/B]
return 0;
}