Консультация № 187821
21.04.2014, 15:54
150.00 руб.
0 15 1
Здравствуйте!
Нужна срочная помощь по решению этой лабы! Вся надежда на вас!
У меня возникли сложности с таким вопросом:
Из входного потока вводиться непрямоугольная матрица целых чилед [aij], i=1, ...,m,j=1...,ni. Значения m и ni заранее не известны и вводятся из входного потока.
Сформировать новую матрицу, поместив в ее i-ую строку только те элементы из i-ой строки исходной матрицы, коротые встречаются в ней два и более раз.
Исходную и полученную матрицы вывести в выходной поток с необходимыми комментариями.

Обсуждение

давно
Профессор
230118
3054
22.04.2014, 12:52
общий
Я напишу, но прошу добавить стоимость вопроса, это же целая программа, а не помощь в написании.
Неизвестный
22.04.2014, 12:58
общий
22.04.2014, 13:09
Адресаты:
150 потолок. т.к сверх усилий для знающего человека это не требует. спасибо за помощь
P.S. я уже обращался с подобной просьбой за меньшую плату и за более объемную работу.
Спасибо за понимание.
давно
Профессор
230118
3054
22.04.2014, 14:48
общий
это ответ
Здравствуйте, Антон!
Код:
#include <iostream>
#include <math.h>
#include <vector>

using namespace std;

void delElement(vector<int> &a, int n)
{
int s=a.size();
for(unsigned i=0;i<a.size();i++)

if (a[i]==n)
{
a.erase(a.begin()+i);
i--;//posle stiraniya sdvig
s--;
}
a.resize(s);
}
int main(int argc, char* argv[])
{
int m;
cout<<"vvedite m"<<endl;
cin >> m;
vector<vector<int>> massiv;
vector<int> n;
n.resize(m);
massiv.resize(m);

for (int i=0;i<m;i++)
{
cout<<"vvedite n"<<i<<endl;
cin >> n[i];
massiv[i].resize(n[i]);
for (int j=0;j<n[i];j++)
{
cout<<"vvedite a"<<i<<j<<endl;
cin >> massiv[i][j];

}
}
cout<<"ishodnaya matrica"<<endl;
for (int i=0;i<m;i++)
{
for (int j=0;j<massiv[i].size();j++)
cout<<massiv[i][j]<<" ";
cout<<endl;
}
vector<vector<int>> massiv1;
massiv1.resize(m);
for (int i=0;i<m;i++)
{
int pos=0;
massiv1[i].resize(n[i]);
for (int j=0;j<massiv[i].size();j++)
{
int k;
bool rep=false;
for (k=j+1;k<massiv[i].size();k++)
if (massiv[i][j]==massiv[i][k])
{
rep=true;
break;
}
if (rep)//est povtor
{
massiv1[i][pos++]=massiv[i][j];
delElement(massiv[i],massiv[i][j]);
j--;
}
}
massiv1[i].resize(pos);
}

for (int i=0;i<m;i++)
{
cout<<"stroka "<<i<<endl;
for (int j=0;j<massiv1[i].size();j++)
cout<<massiv1[i][j]<<" ";
cout<<endl;
}

return 0;
}


Неизвестный
22.04.2014, 17:21
общий
Адресаты:
Неизвестный
22.04.2014, 17:26
общий
Адресаты:

давно
Профессор
230118
3054
22.04.2014, 17:43
общий
22.04.2014, 17:44
А надо указывать, под чем собираетесь компилировать. Линукса у меня нет, так что исправлять не могу. Написано и работает под Visual Studio.
давно
Профессор
230118
3054
22.04.2014, 17:53
общий
Пути к include файлам надо настроить. Тогда и будет работать.
Неизвестный
22.04.2014, 18:19
общий
Адресаты:
Не могли бы вы мне в этом помочь т.к я в программировании 0. Зарание спасиба за уденное время и терпение.
давно
Профессор
230118
3054
22.04.2014, 18:37
общий
Посмотрите инструкцию к компилятору.
Неизвестный
22.04.2014, 19:05
общий
Адресаты:
Вот рабочий код по похожей лабе
скачать файл File1.cpp [2.3 кб]



а вот какие изменения я внес и какой результат получил

давно
Профессор
230118
3054
22.04.2014, 19:18
общий
22.04.2014, 19:29
укажите путь к инклюд директории через -I
компилятор не знает, где искать Iostream
Неизвестный
22.04.2014, 19:40
общий
Адресаты:
я не знаю как узнать путь к include ...
давно
Профессор
230118
3054
22.04.2014, 19:42
общий
через -I
например -I /usr/include
давно
Профессор
230118
3054
22.04.2014, 21:07
общий
Ну остается путь до библиотек дать. Через -L
Неизвестный
22.04.2014, 21:23
общий
Адресаты:
большое спасибо и за терпение и за помощь =) !
Форма ответа