#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) и тд..) либоона нормальная, расчеты выполнены верно, но после нажатия клавишы ентер, среда закрыввается(( что тут в коде не так?((
Другие языки программирования и технологии
проблемма с с++ for doc
При создании матрицы перепутали строки со столбцами и в цикле вместо 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;
}
и при подсчёте элемента, созданного суммой элементов, находящихся на кресте, образованном пересечением строки и столбца на текущем элементе, сам текущий элемент используется в сумме 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;
}
попробуй переписать в ручную, потом скопируй и помести в мастер кода, чаще всего действует
Похожие вопросы
- Помогите, проблемма с операцией "или" \!\!
- Помогите пож-та, как в бэйсике выделить 7 пробелов из файла типа .txt и перенести их в .doc заменив табуляцией
- C++ проблемма русификации консоли. не могу сделать чтобы консоль была русской
- *.bat - Не работает set /a внутри цикла for!
- for и while всегда обрабатывают формулы? С++
- Как начать с определенной комбинации во вложенном цыкле FOR?
- Оператор FOR Напечатать «*» треугольники.
- for or while?c++
- Азы C++: "while" заменяем на "for"
- цикл for не может обрабатывать массивы? (паскаль)