Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 05.01.2016
Сообщений: 5

В одномерном целочисленном массиве поменять местами последний элемент с первым нулевым элементом

05.01.2016, 19:34. Показов 2645. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ввести в память машины одномерный целочисленный массив, размерностью
не более 50 элементов.
1)Поменять местами последний элемент с первым нулевым элементом.
2)Упорядочить массив таким образом, чтобы в начале шли отрицательные элементы, затем нулевые, затем положительные.
Вывести на экран исходный массив и данные, полученные согласно заданию
в варианте.
Ввод массива, манипуляции с массивом, вывод данных произвести через
отдельные пользовательские функции.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.01.2016, 19:34
Ответы с готовыми решениями:

Поменять местами последний элемент массива с первым элементом, равным x
Заданный массив с n чисел. Поменять местами последний элемент с первым элементом, равным x. Учесть возможность того, что элемента,...

В одномерном массиве первый элемент поменять местами с последним элементом, второй элемент с предпоследним элементом и так далее
В одномерном массиве первый элемент поменять местами с последним элементом, второй элемент с предпоследним элементом и так далее.

В одномерном массиве первый элемент поменять местами со вторым элементом, третий элемент с четвертым элементом и так далее.
Ввести одномерный массив поэлементно с помощью клавиатуры или получить его, используя генератор случайных чисел. Одномерный ...

25
130 / 70 / 25
Регистрация: 20.03.2014
Сообщений: 261
05.01.2016, 19:41
В чём вопрос?
0
0 / 0 / 0
Регистрация: 05.01.2016
Сообщений: 5
05.01.2016, 19:45  [ТС]
Помочь с решением
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
05.01.2016, 19:50
Roket91, Свои наработки есть?
0
0 / 0 / 0
Регистрация: 05.01.2016
Сообщений: 5
05.01.2016, 19:53  [ТС]
Нету, в больнице нахожусь, срочно сдать задание надо
0
130 / 70 / 25
Регистрация: 20.03.2014
Сообщений: 261
05.01.2016, 20:10
Сдать главврачу? Кому его в больнице нужно сдать срочно?
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
05.01.2016, 20:25
Roket91,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <iostream>
#include <conio.h>
 
using namespace std;
 
void show( int*, int );
void enter( int*, int );
void sort( int*, int );
void swap_first_end( int*, int ); // До боли смешная функция
 
int main()
{
    int n;
    cin >> n; // кол-во элементов
    int* arr = new int[n];
    enter( arr, n );
    swap_first_end( arr, n );
    show( arr, n );
    sort( arr, n );
    show( arr, n );
    delete [] arr;
    getch();
    return 0;
}
 
void swap_first_end( int* arr, int size ) {
    swap( arr[0], arr[n-1] );
}
 
void show( int* arr, int size ) {
    for( int i = 0; i < size; i++ ) {
        cout << arr[i] << ' ';
    }
    cout << "\n";
}
 
void enter( int* arr, int size ) {
    for( int i = 0; i < n; i++ ) {
        cin >> arr[i];
    }
}
 
void sort( int* arr, int size ) {
    for( int i = 0; i < n-1; i++ ) {
        for( int j = 0; j < n-1; j++ ) {
            if( arr[j+1] < arr[j] ) 
                swap( arr[j+1], arr[j] );
        }
    }
}
1
0 / 0 / 0
Регистрация: 05.01.2016
Сообщений: 5
05.01.2016, 20:50  [ТС]
Другие варианты имеются, желательно по проще
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
05.01.2016, 20:56
Roket91, Что в этом сложного? Говорите, объясню, если смогу нормально объяснить.
0
130 / 70 / 25
Регистрация: 20.03.2014
Сообщений: 261
05.01.2016, 21:00
Цитата Сообщение от makfak Посмотреть сообщение
Roket91, Что в этом сложного? Говорите, объясню, если смогу нормально объяснить.
Человек в больнице и ему нужно срочно сдать, вот в чём сложность.
1
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
05.01.2016, 21:07
Roket91, Ну тогда пишите сами, я не могу попроще!
0
 Аватар для eternalenvy
0 / 0 / 1
Регистрация: 01.07.2014
Сообщений: 30
05.01.2016, 21:12
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
void fillArray(int *pArray, int size); // прототипы функций
void show(int *pArray, int size);
void swap(int *pArray, int size);
void sort(int *pArray, int size);
 
void fillArray(int *pArray, int size) { // ф-ия заполненя массива
    for (int i = 0; i < size; i++) {
        pArray[i] = 10 + rand() % 20; // заполняем случайными значениями от 10 до 20 (можешь поставить клавиатурный ввод cin)
    }
}
 
void swap(int *pArray, int size) { 
    int temp = pArray[0]; // занесем нулевое значение массива в переменную "облако"
    pArray[0] = pArray[size - 1]; // нулевому значению присвоим последнее
    pArray[size - 1] = temp; // последнему присвоим значение переменной, которая хранит нулевое
}
 
void sort(int *pArray, int size) {
    for (int i = 0; i < size - 1; i++)
    {
        for (int j = i + 1; j < size; j++)
        {
            if (pArray[j] < pArray[i])
            {
                int temp = pArray[i];
                pArray[i] = pArray[j]; // сортировка пузырьком
                pArray[j] = temp;
            }
        }
    }
}
 
void show(int *pArray, int size) {
    for (int i = 0; i < size; i++) {
        cout << "[" << i + 1 << "]" << ": " << pArray[i] << endl; // вывод элементов
    }
}
 
int main() {
    int sizeOfArray;
    cin >> sizeOfArray;
    int *pArray = new int[sizeOfArray];
 
 
    fillArray(pArray, sizeOfArray);
    show(pArray, sizeOfArray);
    swap(pArray, sizeOfArray);
    sort(pArray, sizeOfArray);
    show(pArray, sizeOfArray);
 
    delete [] pArray;
 
    _getch(); // аналог system("pause");
}
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
05.01.2016, 21:14
eternalenvy, Ну и чем это отличается от моего варианта? Кроме рандомного заполнения массива, что противоречит заданию.
0
 Аватар для eternalenvy
0 / 0 / 1
Регистрация: 01.07.2014
Сообщений: 30
05.01.2016, 21:21
Практически ничем. Но мне все равно, я решил помочь человеку. Я новичок, поэтому любая задача окажется для меня полезной.
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
05.01.2016, 21:24
eternalenvy, Ну тогда я вам скажу, что у вас есть ошибка, рандом будет выдавать одно и тоже значение.
В начале функции main() поставьте srand( time( nullptr ) );. Не забыв при этом подключить <ctime> или <time.h>
0
0 / 0 / 0
Регистрация: 05.01.2016
Сообщений: 5
05.01.2016, 21:26  [ТС]
makfak, Спасибо за помощь
0
 Аватар для eternalenvy
0 / 0 / 1
Регистрация: 01.07.2014
Сообщений: 30
05.01.2016, 21:28
Да, совсем забыл. Спасибо)
и по-моему проще srand(time(0)); использовать
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
05.01.2016, 21:29
eternalenvy, Это ваше дело, писать nullptr или 0.
0
338 / 67 / 37
Регистрация: 22.12.2010
Сообщений: 138
05.01.2016, 22:10
через вектора попробовал)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <iostream>
#include <vector>
#include <algorithm>
#include <locale>
 
using std::cout;
using std::cin;
using std::endl;
using std::vector;
using std::swap;
using std::stable_partition;
 
vector<int> task_1(vector<int> a) {
    for(vector<int>::size_type i = 0; i != a.size(); i++)
        if(a[i] == 0) {
            swap(a[i], a[a.size()-1]); 
            break;
        }
    return a;
}
 
bool isNeg(int i) {
    return i < 0;
}
 
bool isZero(int i) {
    return i == 0;
}
 
vector<int> task_2(vector<int> a) {
    stable_partition(a.begin(), a.end(), isZero);
    stable_partition(a.begin(), a.end(), isNeg);
    return a;
}
 
int main() {
    setlocale(LC_ALL,"Russian");
    vector<int> array;
    int element;
    cout << "введите элементы массива (ctrl+z для остановки ввода):" << endl;
    while(cin >> element)
        array.push_back(element);
    cout << "Задание 1" << endl;
    vector<int> task1 = task_1(array);
    for(vector<int>::size_type i = 0; i < task1.size(); ++i)
        cout << task1[i] << ' ';
    cout << endl << "Задание 2" << endl;
    vector<int> task2 = task_2(array);
    for(vector<int>::size_type i = 0; i < task2.size(); ++i)
        cout << task2[i] << ' ';
    return 0;
}
Миниатюры
В одномерном целочисленном массиве поменять местами последний элемент с первым нулевым элементом  
0
05.01.2016, 22:16

Не по теме:

Я не понимаю, почему люди с такими детскими заданиями ходят на форумы. Это задание можно в нете найти готовое.

Цитата Сообщение от makfak Посмотреть сообщение
Roket91, Ну тогда пишите сами, я не могу попроще!
Надо было написать с абстрактными классами и т.п.
Цитата Сообщение от makfak Посмотреть сообщение
eternalenvy, Это ваше дело, писать nullptr или 0.
А еще лучше писать NULL. :)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.01.2016, 22:16
Помогаю со студенческими работами здесь

Массив: В одномерном массиве первый элемент поменять местами с последним элементом, второй элемент с предпоследним элементом и так далее.
В одномерном массиве первый элемент поменять местами с последним элементом, второй элемент с предпоследним элементом и так далее.

Последний отрицательный элемент массива умножить на заданное число и поменять местами с первым элементом
Найти последний отрицательный элемент массива,умножить его на заданное число и поменять местами с первым элементом

Поменять местами последний элемент массива с первым минимальным элементом, а затем поделить на заданное
Поменять местами последний элемент массива с первым минимальным элементом, а затем поделить на заданное число все элементы, начиная с...

В одномерном массиве найти наименьший элемент и поменять с первым элементом массива
В одномерном массиве найти наименьший элемент и поменять с первым элементом массива

Дан целочисленный вектор А(n). Поменять местами последний положительный элемент вектора с первым ненулевым элементом
Дан целочисленный вектор А(п). Поменять местами последний положительный элемент вектора с первым ненулевым элементом вектора.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru