pashazt
05-11-2012, 22:08
Программа некорректно находит максимум среди сумм элементов диагоналей, паралельных главной диагонали матрицы. Помогите найти ошибку.
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<locale.h>
#include<iostream>
int main()
{
setlocale (LC_ALL, "Rus");
int m,n,i,j,d,f,k,l,p;
printf("Введите количество элементов в строке матрицы n = ");
scanf("%d",&n);
printf("Введите количество элементов в столбце матрицы m = ");
scanf("%d",&m);
int matrix[i][j];
for(i=0;i<n;i++)
{
printf("Введите элементы %d строки ",i+1);
for(j=0;j<m;j++)
scanf("%d",&matrix[i][j]);
}
printf("\nМаксимум среди сум элементов диагоналей, паралельных главной диагонали матрицы=");
k=matrix[1][m];
for (l=1-m; l<=m-1; l++)
{
p=0;
for (i=0; i<n; i++)
for (j=0; j<m; j++)
if (i-j==l)
p=p+matrix[i][j];
if (p>k)
k=p;
}
printf("%d",k);
getch();
return 0;
}
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<locale.h>
#include<iostream>
int main()
{
setlocale (LC_ALL, "Rus");
int m,n,i,j,d,f,k,l,p;
printf("Введите количество элементов в строке матрицы n = ");
scanf("%d",&n);
printf("Введите количество элементов в столбце матрицы m = ");
scanf("%d",&m);
int matrix[i][j];
for(i=0;i<n;i++)
{
printf("Введите элементы %d строки ",i+1);
for(j=0;j<m;j++)
scanf("%d",&matrix[i][j]);
}
printf("\nМаксимум среди сум элементов диагоналей, паралельных главной диагонали матрицы=");
k=matrix[1][m];
for (l=1-m; l<=m-1; l++)
{
p=0;
for (i=0; i<n; i++)
for (j=0; j<m; j++)
if (i-j==l)
p=p+matrix[i][j];
if (p>k)
k=p;
}
printf("%d",k);
getch();
return 0;
}