Максимум на побочной диагонали, что не так в программе? - C (СИ)
Формулировка задачи:
#include <stdio.h> #include <iostream> using namespace std; int func (int **arr, int n ); // вывод матрицы void PrintMatrix(int **a, int n) { for (int i=0;i<n;i++){ for (int j=0;j<n;j++) printf("%d ",a[i][j]); printf("\n"); } printf("\n"); } int main() { int n; printf("Vvedite razmernost matrizi n: "); scanf("%d", &n); //динамическое создание двумерного массива int **a=new int *[n]; for (int i=0;i<n;i++) a[i]=new int [n]; //ввод матрицы for (int i=0;i<n;i++){ printf("enter %d line\n", i+1); for (int j=0;j<n;j++) scanf("%d", &a[i][j]); } printf("\n\nIshodnaja Matriza\n"); PrintMatrix(a,n); printf ("Maximum is %d\n",func (a,n)); //удаление for (int i=0;i<n;i++) delete []a[i]; delete []a; system ("pause"); return 0; } int func(int **arr,int n) { int max=arr[0][n-1]; int i; int j; for( i=1; i<n-1; i++); for ( j=n-2; j>0; j--) { if (arr[i][j]>max) max =arr[i][j]; } return max; }
Решение задачи: «Максимум на побочной диагонали, что не так в программе?»
textual
Листинг программы
int func(int **arr,int n) { int max=arr[0][n-1]; int i; int j; for( i=0; i<n; i++) { if (arr[i][n-1-i]>max) max =arr[i][n-1-i]; } return max; }
Объяснение кода листинга программы
В данном коде функция func() находит максимальное значение в побочной диагонали матрицы arr[][], которая передается в качестве аргумента. Список действий в функции:
- Переменная max инициализируется значением arr[0][n-1].
- Переменные i и j инициализируются нулевыми значениями.
- Цикл for запускается n раз.
- В каждой итерации цикла, если значение arr[i][n-1-i] больше значения max, то max обновляется значением arr[i][n-1-i].
- После завершения цикла, функция возвращает значение max.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д