ПРИ СУММИРОВАНИИ ЭЛЕМЕТНОВ ГЛАВНОЙ ДИГОНАЛИ ПРОПУСКАЕТ ЭЛЕМЕНТ arr [0][0]
Дан целочисленный прямоугольный массив. Определить сумму модулей элементов, расположенных на главной диагонали.
НЕ МОГУ РАЗОБРАТЬСЯ ПОЧЕМУ ПОЧЕМУ ПРИ СУММИРОВАНИИ ЭЛЕМЕТНОВ ГЛАВНОЙ ДИГОНАЛИ ПРОПУСКАЕТ ЭЛЕМЕНТ arr [0][0].
Заранее спасибо.
#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <locale.h>
#include <process.h>
#include <stdlib.h>
void sum_d(int**, int, int);
void main()
{
setlocale(LC_CTYPE,"russian");
system("cls");
fflush(stdin);
int m, n, i,j;
int **mas;
printf("Введите количество строк массива.\n");
scanf_s("%d", &n); if (n<=0) {printf("Введите целое положительное число!");scanf_s("%d", &n);}
printf("Введите количество столбцов массива.\n");
scanf_s("%d", &m); if (m<=0) {printf("Введите целое положительное число!");scanf_s("%d", &m);}
if (!(mas=new int*[n])){ puts("Недостаточно памяти!"); _getch(); exit(0);}
for(i=0;i<n;i++)
if(!(*(mas+i)=new int[m])){
printf("Недостаточно памяти!\n");
mas=NULL;
exit(0);}
printf("\n Заполнение массива\n");
for(i=0;i<n;i++)
{printf("\nВведите строку номер %d\n", i+1);
for(j=0;j<m;j++)
scanf_s("%d",*(mas+i)+j);}
printf("Ввод окончен. Нажмите любую клавишу...");
_getch();
system("cls"); //очистка экрана и отправка массива в функция для вычисления
sum_d(mas,n,m);
}
void sum_d(int **arr, int n1, int m1) // наша пользовательская функция
{
int sum, i, j;
sum= 0;
printf("\nВведенный массив:\n");
for(i=0;i<n1;i++)
{ printf("\n\n");
for(j=0;j<m1;j++)
printf_s("%3d",*(*(arr+i)+j));
}
printf("\n\n");
for(i=0;i<n1;i++)
for(j=0;j<m1;j++)
if (n1 != m1)
printf("Количество строк и столбцов должно совпадать!\n");
else
{
if (i=j)
sum+=abs(*(*(arr+i)+j));
}
printf("Сумма модулей элементов главной диагонали %d", sum);
_getch();
}
Код:
if (i==j), а не if (i=j)
спасибо, не заметил)