
C/C++
Создать одномерный массив, состоящий из n вещественных элементов. Элементы массива определить при помощи случайных чисел
Создать одномерный массив, состоящий из n вещественных элементов. Элементы массива определить при помощи случайных чисел в диапазоне от -13 до 13. Размерность массива определить при помощи именованной константы. Преобразовать массив таким образом, чтобы сначала располагались все положительные элементы, а потом — все отрицательные (элементы, равные 0, считать положительными). Порядок элементов должен быть сохранен. Дополнительный массив использовать запрещается. Помогите пожалуйста сделать сортировку.

По моему тут лучше воспользоваться динамическими массивами из модуля vector -так проще будет:
#include <ctime>
#include <vector>
#include <cstdlib>
#include <iomanip>
#include <iostream>
using namespace std;
void print_array(vector <double> x)
{
int i, j = 0;
for (i = 0; i < x.size(); i++)
{
j++;
cout << setw(15) << x[i];
if (j == 8)
{
j = 0;
cout << endl;
}
}
if (j) cout << endl;
cout << endl;
}
int main()
{
system("color e8");
system("cls");
cout << setprecision(10) << fixed;
int i, j = 0, n;
double a;
cout << "n = ";
cin >> n;
vector <double> A(n);
srand(time(nullptr));
for (i = 0; i < n; i++)
A[i] = 26. * rand() / RAND_MAX - 13.;
print_array(A);
for (i = 0; i < n; i++)
{
a = A[i];
if (a >= 0)
{
A.erase(A.begin() + i);
A.emplace(A.begin() + j, a);
j++;
}
}
print_array(A);
system("pause > nul");
}
Вывод вещественного массива у меня подогнан под экран шириной 120 литер. Все операторы system можно убрать -у меня они только для управления цветами экрана и для удобного выхода из программы. И что-то ещё с сайтом случилось: < -это знак < если что!

#include <ctime>
#include <vector>
#include <cstdlib>
#include <iomanip>
#include <iostream>
using namespace std;
void print_array(vector <double> x)
{
int i, j = 0;
for (i = 0; i < x.size(); i++)
{
j++;
cout << setw(15) << x[i];
if (j == 8)
{
j = 0;
cout << endl;
}
}
if (j) cout << endl;
cout << endl;
}
int main()
{
system("color e8");
system("cls");
cout << setprecision(10) << fixed;
int i, j = 0, n;
double a;
cout << "n = ";
cin >> n;
vector <double> A(n);
srand(time(nullptr));
for (i = 0; i < n; i++)
A[i] = 26. * rand() / RAND_MAX - 13.;
print_array(A);
for (i = 0; i < n; i++)
{
a = A[i];
if (a >= 0)
{
A.erase(A.begin() + i);
A.emplace(A.begin() + j, a);
j++;
}
}
print_array(A);
system("pause > nul");
}
Вывод вещественного массива у меня подогнан под экран шириной 120 литер. Все операторы system можно убрать -у меня они только для управления цветами экрана и для удобного выхода из программы. И что-то ещё с сайтом случилось: < -это знак < если что!

Полюбопытствуйте https://codelessons.ru/cplusplus/algoritmy/puzyrkovaya-sortirovka-v-c-glavnye-momenty.html
Игорь Шпелев
пузырек не попрет, в задании порядок элементов должен быть сохранен
#include<iostream>
int main()
{
int b = 0;
const int n = 6;
int a[n] = {0,-77,4,-3,1,0};
for (int i = 0; i < n; i++)
{
std::cout << a[i]<<' ';
}
std::cout << '\n';
for (int i = 0; i < n; i++)
{
if (a[i]>=0) {
std::swap(a[i], a[b]);
b++;
}
}
for (int i = 0; i < n; i++)
{
std::cout << a[i] << ' ';
}
}
int main()
{
int b = 0;
const int n = 6;
int a[n] = {0,-77,4,-3,1,0};
for (int i = 0; i < n; i++)
{
std::cout << a[i]<<' ';
}
std::cout << '\n';
for (int i = 0; i < n; i++)
{
if (a[i]>=0) {
std::swap(a[i], a[b]);
b++;
}
}
for (int i = 0; i < n; i++)
{
std::cout << a[i] << ' ';
}
}
Zaklr Huseynov
в выше херня получилась, вот правильно
#include<iostream>
int main()
{
const int n = 10;
int a[n] = { 31,2,-3,111,-22,-13,4,-8,-9,-66 };
for (int i = 0; i < n; i++)
{
//a[i] = rand() % 27 - 13;
std::cout << a[i] << ' ';
}
std::cout << '\n';
for (int i = 0; i < n; i++)
{
for (int i = 0; i < n; i++)
{
if (a[i] < 0) {
if (a[i+1]>0)
std::swap(a[i], a[i+1]);
}
}
}
for (int i = 0; i < n; i++)
{
std::cout << a[i] << ' ';
}
}
#include<iostream>
int main()
{
const int n = 10;
int a[n] = { 31,2,-3,111,-22,-13,4,-8,-9,-66 };
for (int i = 0; i < n; i++)
{
//a[i] = rand() % 27 - 13;
std::cout << a[i] << ' ';
}
std::cout << '\n';
for (int i = 0; i < n; i++)
{
for (int i = 0; i < n; i++)
{
if (a[i] < 0) {
if (a[i+1]>0)
std::swap(a[i], a[i+1]);
}
}
}
for (int i = 0; i < n; i++)
{
std::cout << a[i] << ' ';
}
}
Это JS? Лол, тоже учу его
Похожие вопросы
- В одномерном массиве, состоящем из n вещественных элементов, вычислить сумму элементов массива
- Помогите пожалуйста с Массивами .В языке С .Заполнил 2-мерный массив N и M случайными числами дальше не понимаю.
- Массив Х [36] целых элементов задать датчиком случайных чисел.
- Для всех задач сформировать одномерный массив N случайных чисел из интервала (-10; 10).
- 5) Найти среднее значение элементов построчно и по столбцам массива n*n случайных чисел. с++ пж помагите
- Сформировать матрицу B(M, N) элементами которой являются случайные числа, равномерно распределенные в интервале (-5, 7
- Задан одномерный массив целых чисел создать код на C++
- В файле дана двухмерная матрица, сформировать одномерный массив длинной N из чётных элементов квадратной матрицы
- Одномерный массив нужна программа срочно)
- C++ одномерный массив