Нйти сумму элементов двухмерного массива ниже диагонали. - C (СИ)
Формулировка задачи:
Задание: найти сумму элементов выше диагонали, место max выше диагонали и место min ниже диагонали.
Первые два пункта у меня пошли, а с min что-то не заладилось. Может кто-нибудь помочь найти мою оплошность?
#include <stdio.h>
#include <conio.h>
int main()
{
const int n=3,m=4;
int a[n][m],sum=0,i,j,max,str1,stlb1,min,str2,stlb2;
for (i=0;i<n;i++)
{
for (j=0;j<m;j++)
{
printf("a[%d][%d] = ",i,j);
scanf_s("%d",&a[i][j]);
}
}
max=a[0][1];
min=a[1][0];
for (i=0;i<n;i++)
{
for (j=0;j<m;j++)
{
if (i<j)
{
sum+=a[i][j];
if (a[i][j]>max)
{
max=a[i][j];
str1=i;
stlb1=j;
}
}
}
}
for (i=0;i<n;i++)
{
for (j=0;j<m;j++)
{
if (i>j)
{
if (a[i][j]<min)
{
min=a[i][j];
str2=i;
stlb2=j;
}
}
}
}
printf("Sum is = %d\n",sum);
printf("Max is = %d and its position is - %d %d\n",max,str1,stlb1);
printf("Min is = %d and its position is - %d %d\n",max,str2,stlb2);
_getch();
return 0;
}Решение задачи: «Нйти сумму элементов двухмерного массива ниже диагонали.»
textual
Листинг программы
#include <stdio.h>
#include <conio.h>
int main()
{
const int n=3,m=4;
int a[n][m],sum=0,i,j,max,str1,stlb1,min,str2,stlb2;
for (i=0;i<n;i++)
{
for (j=0;j<m;j++)
{
printf("a[%d][%d] = ",i,j);
scanf("%d",&a[i][j]);
}
}
max=a[0][1];
min=a[1][0];
str1=0;
stlb1=1;
str2=1;
stlb2=0;
for (i=0;i<n;i++)
{
for (j=0;j<m;j++)
{
if (i<j)
{
sum+=a[i][j];
if (a[i][j]>max)
{
max=a[i][j];
str1=i;
stlb1=j;
}
}
}
}
for (i=0;i<n;i++)
{
for (j=0;j<m;j++)
{
if (i>j)
{
if (a[i][j]<min)
{
min=a[i][j];
str2=i;
stlb2=j;
}
}
}
}
printf("Sum is = %d\n",sum);
printf("Max is = %d and its position is - %d %d\n",max,str1,stlb1);
printf("Min is = %d and its position is - %d %d\n",min,str2,stlb2);
_getch();
return 0;
}
Объяснение кода листинга программы
В этом коде объявлены следующие переменные:
- n и m - это константы, которые определяют размерность двухмерного массива a.
- a[n][m] - это сам двухмерный массив.
- sum - это переменная, которая будет хранить сумму элементов массива.
- i и j - это индексы для обхода массива.
- max, min - это переменные для хранения максимального и минимального значения массива.
- str1, stlb1, str2, stlb2 - это переменные для хранения позиции максимального и минимального значения массива. Код начинается с заполнения массива a с помощью цикла for и функции scanf. Затем происходит поиск максимального и минимального значения массива, а также их позиций. Используется второй цикл for для обхода массива по диагонали и подсчета суммы элементов. После этого выводятся значения переменных sum, max, min, а также их позиции. Используется функция printf для вывода значений переменных. В конце кода вызывается функция _getch для приостановки выполнения программы до тех пор, пока пользователь не нажмет какую-либо клавишу. В общем, код выполняет задачу по нахождению суммы элементов массива ниже диагонали, а также находит максимальное и минимальное значение массива и их позиции.