1.создать консольное приложение и составить программу для решения задачи с одномерным массивом.Спроектировать переменную для хранения исх данных и результатов. Массив X(N)(N<=60). Переписать отрицательные элементы массива X последовательно в массив Y. Отпечатать сформированный массив Y. Заранее спасибо!
Code: #include <iostream> #include <vector> int main( int argc, char *argv[] ) { std::vector < int > arrX; std::vector < int > arrY; int number = 0; do { std::cin >> number; if( number < 0 ) arrY.push_back( number ); else arrX.push_back( number ); } while( number ); for( size_t i = 0; i < arrY.size(); i++ ) { std::cout << arrY[ i ] << " | "; } std::cin.ignore().get(); return 0; } Ввод заканчивается когда number равен нулю. Можете поменять ноль на что то другое.
Code: #include <iostream> #include <conio.h> using namespace std; void main() { int N; do { cout<<"Count: "; cin>>N; } while(N > 60); int * X = new int[N]; int Negative = 0; for(int i = 0; i < N; i++) { cout<<"X["<<i<<"] = "; cin>>X[i]; if(X[i] < 0) Negative++; } int * Y = new int[Negative]; for(int i = 0, c = 0; i < N; i++) { if(X[i] < 0) { Y[c] = X[i]; cout<<Y[c]<<endl; c++; } } delete X; delete Y; _getch(); } не знаю, зачем здесь векторы
Вектор -- это удобно, это избавляет нас от кучи ненужных операций + читаемость кода лучше. Да и использование здесь вектора вполне уместно, ибо на производительность нам класть. Так что зачем изобретать велосипед, если все уже давно сделали за нас? Вот так вот
Code: #include <iostream> using namespace std; void main() { int lengthX = 0, beginn =0, end =0, *massivX, *massivY, lengthY = 0, zifra = 0 ;//инициализация bool ask;//булевская, для do-while do { cin.clear();//чистим-чистим _flushall(); cout<<"Ввведите размер массива(не более 60): "; cin>>lengthX; if(cin.fail()||lengthX>59||lengthX<=0)//проверка условая { ask = false;//при ошибке false, идём на повтор } else ask = true;//примелимый ввод- идём дальше }while(ask!=true);//проверка-поторить или идти дальше massivX = new int [lengthX];//создаём массив end = lengthX;//последний индекс массива cout<<"Длина массива:"<<lengthX<<endl;//выводим на консоль длину массива for(int i = 0; i<=lengthX;i++) { cin.clear();//чистим-чистим cout<<"Введите число для индекса "<<i+1<<" в массива.\n"; cin>>zifra;//считывам ввод if(zifra<0) { massivX[end]=zifra;//если меньше 0, пишем в конец массива. end--;//перемещаемсыя с конца массива на единицу lengthY++;//увеличиваем длину массива с негативными числами } else {massivX[beginn]= zifra; beginn++;}//число больше 0, заносим в начало массива, идём дальше по массиву+1 } massivY = new int[lengthY];//создаём массив с неганивными числами for(int i = 0; i<=lengthY;i++) { massivY[i] = massivX[lengthX];//переписываем негативные числа lengthX--; } for(int i = 0; i<lengthY;i++) cout<<i+1<<". element: "<<massivY[i]<<"\n";//выводим массив с неганивными числами на консоль. system("pause"); } Постарался подробно объяснить что да как.Вариантов всегда много, главное понять смысл- а дальше экспериментируй. +немного сортировки.