Другие языки программирования и технологии

Нужна помощь в решении задачи по С++ связанная с матрицами

Есть задача: Ввести матрицу размером NxM. Память для массива выделить динамически. Выполнить в соответствии с номером варианта индивидуальное задание и вывести на экран исходные данные и полученный результат. Определить количество положительных элементов, расположенных ниже побочной диагонали матрицы. Есть решение это задачи: #include "stdafx.h" #include <iostream.h> #include <conio.h> int FindElement(int, int, int**); // Описание прототипа функции void main() { int **a, i, j, n, m, Rez; cout << "\t Input N, M : "; cin >> n >> m; a = new int*[n]; // Захват памяти под указатели for(i=0; i<n;i++)> = new int[m]; // Захват памяти под элементы cout <<"\n Input A" << endl; for(i=0; i<n;>[j]; cout << endl; } // Обращение к функции с указанием фактических аргументов Rez = FindElement(n, m, a); cout << "\n\t Elementov bolshe 0: " << Rez << endl; delete []a; // Освобождение памяти cout << "\n\t Delete !" << endl; } /* Реализация описанной выше функции, в заголовке которой указаны формальные параметры, идентификаторы которых обрабатываются в ее коде */ int FindElement(int a, int b, int **x) { int i, j, count; count = 0; for(i=a-1; i>=0;i--) for(j=a-1; j>=a-i;j--) if(x[j] > 0){ count++; } return count; } Но в задаче используется функция пользователя (но задача выполняется согласно пройденному материалу,а их (функции) мы не проходили и условием это не задано,да и по методичке мы должны использовать библиотеки <iostream.h> <iomanip.h> <math.h>) Люди добрые,очень прошу Вашей помощи. Помогите решить данную задачу с использованием библиотек указанных выше и без функции. Ну ооооочень прошу. 2 недели не спокойно сплю из-за нее,а помощи просить не у кого. 4 задачи сам освоил,а вот на этой свет клином сошелся Желательно скинуть (выслать) полный код программы За ранее благодарен
// KapriZ_2011-11-26
// Как было справедливо замечано, побочной диаганалью обладает только квадратная матрица
#include <iostream>
using namespace std;

void main()
{
int **a, N, count = 0;

cout << endl << " Input N = ";
cin >> N;
cout << endl;

a = new int*[N];

for (int n = 0; n < N; n++)
{
a[n] = new int[N];

for (int m = 0; m < N; m++)
{
cout << " a[" << n << "][" << m << "] = ";
cin >> a[n][m];
}
}

cout << endl;

for (int n = 0; n < N; n++, cout << endl << endl)
for (int m = 0; m < N; m++) cout << '\t' << a[n][m];

for (int n = 0; n < N; n++)
for (int m = 0; m < N; m++)
if (n + m > N)
if (a[n][m] >= 0) count++;

cout << endl << "\t Quantity: " << count;

for (int n = 0; n < N; n++) delete[] a[n];
delete[] a;

fflush(stdin);
cin.get();
}
Никитка Бойко
Никитка Бойко
54 042
Лучший ответ
Если ещё с главной диагональю что-то можно примерно определить однозначно для прямоугольных матриц, то с побочной диагональю всё достаточно непросто!
Дайте здесь определение побочной диагонали для прямоугольной матрицы и Вы войдёте в историю как один из великих математиков, впервые давших это определение!
Сергей Курин
Сергей Курин
76 473