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

проблемма с с++ for doc

#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>

int input(int *p){
cin >> *p;
if (cin.peek() == '\n'){
cin.get();
return 0;
} else {
cout << "oshi6ka vvoda, poprobyu'te esche paz\n";
cin.clear();
while (cin.get() != '\n');
return 1;
}
}

void main()
{
clrscr();
randomize();
int n, m, u;
cout << "vvedite kol-vo stolbchov: ";
while(input(&n));
cout << "vvedite kol-vo strok: ";
while(input(&m));
double **v;
v = new (double **)[n];
for (int i = 0; i < n; i++)
{
v[n] = new double[m];
}
cout << "poly4enna9 matrica:\n";
for (int j = 0; j < m; j++)
{
for (int t = 0; t < n; t++)
{
u = rand();
v[t][j] = u;
cout << v[t][j] << " ";
}
cout << "\n";
}
cout << "rezyl'tat\n";
int q;
for (int r = 0; r < m; r++ )
{
for (int e = 0; e < n; e++)
{
q = 0;
for (int x = 0; x < m; x++)
{
q = q + v[e][x];
}
for (int y = 0; y < n; y++)
{
q = q + v[y][r];
}
cout << q << " ";
}
cout << "\n";
}

getch();
return;

}

программа должна вводить матрицу и заменять каждый эоемент матрицы на элемент креста (строки и столбца в которых находиться элемент)

проблемма заключается в том, что при вводе данных, допустим 3 столбца 4 строки мы получем матрицу, после чего получает матрицу2....матрица1 нормальная, ни чего сверхестественного в ней нет, а вот если взять матрицу2 то у неё либо каждая строка сосоит из равных элементов (1 строка (43 43 43)2 строка (23 23 23) и тд..) либоона нормальная, расчеты выполнены верно, но после нажатия клавишы ентер, среда закрыввается(( что тут в коде не так?((
RP
Roma Pashnin
149
При создании матрицы перепутали строки со столбцами и в цикле вместо i стоит n
и при подсчёте элемента, созданного суммой элементов, находящихся на кресте, образованном пересечением строки и столбца на текущем элементе, сам текущий элемент используется в сумме 2 раза

правильно программа будет работать, если будет выглядеть, например, так
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>

int input(int *p){
cin >> *p;
if (cin.peek() == '\n'){
cin.get();
return 0;
} else {
cout << "oshi6ka vvoda, poprobyu'te esche paz\n";
cin.clear();
while (cin.get() != '\n');
return 1;
}
}

void main()
{
clrscr();
randomize();
int n, m, u;
cout << "vvedite kol-vo stolbchov: ";
while(input(&n));
cout << "vvedite kol-vo strok: ";
while(input(&m));
double **v;
v = new (double **)[m];
for (int i = 0; i < n; i++)
{
v[ i ] = new double[n];
}
cout << "poly4enna9 matrica:\n";
for (int j = 0; j < m; j++)
{
for (int t = 0; t < n; t++)
{
u = rand() % 10;
v[t][j] = u;
cout << v[t][j] << " ";
}
cout << "\n";
}
cout << "rezyl'tat\n";
int q;
for (int r = 0; r < m; r++ )
{
for (int e = 0; e < n; e++)
{
q = 0;
for (int x = 0; x < m; x++)
{
q = q + v[e][x];
}
for (int y = 0; y < n; y++)
{
if(y!=e) q = q + v[y][r];
}
cout << q << " ";
}
cout << "\n";
}

getch();
return;
}
Roman Vaksman
Roman Vaksman
76 473
Лучший ответ
попробуй переписать в ручную, потом скопируй и помести в мастер кода, чаще всего действует