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

задачка на С# или С++

Помогите люди добрые очень срочно нада сделать маленькую программку по задачке (в матрицу А[N,M] включить заданный вектор B[N] в качестве столбца перед стобцом, содержащим наибольшее количество отрицательный элементов) оччччень прошу помогите времяни в обрез или кранты мне будет. Зарание спасибо если можно дайте хотябы подсказки как это реализовать желательно на С# или С++.
using System;

namespace matrixColumnInsert
{
class Program
{
static void Main(string[] args)
{
Random rand = new Random();
Int32 row = rand.Next(10, 10);
Int32 col = rand.Next(8, 11);
Int32 count;
Int32[][] myMatrix;
Int32[][] temp;
Int32[] myVector;
Int32 index = 0;
Int32 max = 0;

myMatrix = new Int32 [row][];
temp = new Int32 [row][];
for (Int32 n = 0; n < row; n++, Console.WriteLine())
{
myMatrix[n] = new Int32 [col];
temp[n] = new Int32[col];
for (Int32 m = 0; m < col; m++)
{
myMatrix[n][m] = rand.Next(-99, 99);
temp[n][m] = myMatrix[n][m];
Console.Write("{0}\t", myMatrix[n][m]);
}
}
Console.WriteLine();

myVector = new Int32 [row];
for (Int32 n = 0; n < row; n++)
{
myVector[n] = rand.Next(-99, 99);
Console.Write("{0}\t", myVector[n]);
}
Console.WriteLine();

for (Int32 m = 0; m < col; m++)
{
count = 0;
for (Int32 n = 0; n < row; n++)
{
if (myMatrix[n][m] < 0) count++;
}
if (max < count)
{
max = count;
index = m;
}
}
Console.WriteLine(" index = {0}\n", index);

for (Int32 n = 0; n < row; n++)
{
myMatrix[n] = new Int32[col + 1];
for (Int32 m = 0, k = 0; m <= col; m++, k++)
{
if (m == index)
{
myMatrix[n][m] = myVector[n];
k--;
}
else myMatrix[n][m] = temp[n][k];
}
}

foreach (Int32[] matrix in myMatrix)
{
Console.WriteLine();
foreach (Int32 element in matrix)
{
Console.Write("{0}\t", element);
}
}

Console.ReadKey();
}
}
}

P.S. У вас там ещё и леса есть?
Uran+ Shaymkulov
Uran+ Shaymkulov
87 288
Лучший ответ
На С++ без промежуточной матрицы:

#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
setlocale(LC_ALL,"Russian");
srand((unsigned)time(NULL));
int N = rand() % 9 + 2;
int M = rand() % 13 + 2;
cout << "Заданная матрица A(" << N << "x" << M << "):" << endl;
int ** A = new int * [ N ];
for (int i = 0; i < N; i++)
{
A[ i ] = new int[ M + 1 ];
for (int j = 0; j < M; j++)
{
A[ i ][ j ] = rand() % 201 - 100;
cout << setw(5) << A[ i ][ j ];
}
cout << endl;
}
cout << "Заданный вектор B(" << N << "):" << endl;
int * B = new int[ N ];
for (int i = 0; i < N; i++)
{
B[ i ] = rand() % 101 + 100;
cout << setw(5) << B[ i ];
}
int jnmax = -1, nmax, k;
for (int j = 0; j < M; j++)
{
k = 0;
for (int i = 0; i < N; i++)
if (A[ i ][ j ] < 0)
k++;
if (k > 0 && (jnmax < 0 || k > nmax))
{
jnmax = j;
nmax = k;
}
}
if (jnmax < 0)
cout << endl << "Нет отрицательных элементов";
else
{
for (int i = 0; i < N; i++)
{
for (int j = M; j > jnmax; j--)
A[ i ][ j ] = A[ i ][ j - 1];
A[ i ][ jnmax ] = B[ i ];
}
cout << endl << "Матрица после включения вектора: " << endl;
for (int i = 0; i < N; i++)
{
for (int j = 0; j < M + 1; j++)
cout << setw(5) << A[ i ][ j ];
cout << endl;
delete[ ] A[ i ];
}
}
delete[ ] A;
delete[ ] B;
cin.get();
return 0;
}
бежишь по матрицы, по каждому столбцу и считаешь в нем кол-во отрицательных элементов, ищещь максимум из полученых значений - получаешь номер столбца перед которым надо вставить столбец B затем выделяешь память под массив A2[N, M + 1] и заносишь значения в него
Лесникам за чем информатика? ) В лесничестве главное следить за древесиной) от браконьеров и тд))