Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Лена касимова
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 7
#1

Найти минимальный элемент массива, поставить его на первое место, остальные элементы сдвинуть - C++

17.05.2011, 06:41. Просмотров 923. Ответов 13
Метки нет (Все метки)

а)Дана последовательность n элементов в виде массива. Найти минимальный элемент массива,паставить его на первое место,остальные эл.сдвигаются.
б)Дана матрица А размерности m*n и вектор Х размерности m. Найти произведение Х*А.
Помогите решить!!!у меня не получается!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2011, 06:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти минимальный элемент массива, поставить его на первое место, остальные элементы сдвинуть (C++):

Найти минимальный по значению элемент и записать его на начало массива, высвободив для него место путем смещ - C++
Генерировать значения элементов одномерного массива с помощью генератора псевдослучайных чисел, введя количество элементов массива с...

Найти минимальный элемент массива и упорядочить все элементы левее его по убыванию, а правее – по возрастанию - C++
Реализовать функцию для обработки массива целых чисел. Функция находит минимальный элемент массива и сортирует все элементы левее его по...

Ввести символы, формируя из них стек. Найти минимальный элемент и вставить на его место 0 - C++
Задание: Ввести символы, формируя из них стек.Найти минимальный элемент и вставить на его место 0. Вывести полученный стек на экран....

Заменить все элементы массива, меньшие 5, на его минимальный элемент - C++
Дан одномерный массив вещественных чисел. Написать программу, которая заменяет все элементы массива, меньшие 5, на минимальный элемент...

Дан массив. Уменьшить все его элементы на минимальный элемент массива - C++
Дан массив А(n). Уменьшить все его элементы на минимальный элемент массива. Помогите сделать лабораторную работу.

Наименьший элемент массива на первое место... - C++
Помогите плиз, нужен код задачи на C++: Надо наменьший элемент из массива поместить на первое место, наименьший из оставшихся на...

13
Aneron
158 / 157 / 12
Регистрация: 20.04.2010
Сообщений: 570
17.05.2011, 10:34 #2
1. Пройдись по всему массиву и путем сравнения найди самое малое и его индекс в массиве. Запиши в какие нить доп.переменные. Затем начинай сдвигать элементы в массиве. Элемент перед самым малым ставишь на место самого малого. И так далее. Как только все сдвинешь, ставишь первым твое самое маленькое значение.
2. Простое умножение. В чем проблема? кинь код.
0
LineStown
66 / 66 / 3
Регистрация: 04.08.2010
Сообщений: 420
Завершенные тесты: 1
17.05.2011, 10:42 #3
Цитата Сообщение от Лена касимова Посмотреть сообщение
Помогите решить!!!у меня не получается!!!
=
Не хочу ничё читать, а скоро сессия/зачет/экзамен, решите за меня
0
absokolov
29 / 29 / 1
Регистрация: 10.05.2011
Сообщений: 120
17.05.2011, 11:06 #4
Цитата Сообщение от Лена касимова Посмотреть сообщение
а)Дана последовательность n элементов в виде массива. Найти минимальный элемент массива,паставить его на первое место,остальные эл.сдвигаются.
б)Дана матрица А размерности m*n и вектор Х размерности m. Найти произведение Х*А.
Помогите решить!!!у меня не получается!!!
А что у Вас уже решено?

P.S. LineStown + 1 ))))))
0
Temirlan90
132 / 132 / 8
Регистрация: 30.09.2010
Сообщений: 333
18.05.2011, 12:52 #5
Если есть кто еще в этой теме мой код для первого задания, но он не правильный
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
#include <iostream>
#include <limits>
using namespace std;
const int size = 100001;
void BubbleSort(int Array[], int size) {
    int i, j, x;
    for(i = 0; i < size; i++) {  
        for( j = size - 1; j > i; j-- ) {  
            if ( Array[j - 1] < Array[j] ) { 
                x = Array[j - 1]; 
                Array[j - 1] = Array[j]; 
                Array[j] = x; 
            }
        }
    }
}
int main() {
    int arr[size], n, min = INT_MAX, imin;
    freopen("INPUT.TXT", "r", stdin);
    freopen("OUTPUT.TXT", "w", stdout);
    cin >> n;
    for (int i = 0; i < n; ++i) {
        cin >> arr[i];
    }  
    BubbleSort(arr, n);
    for (int i = 0; i < n; ++i) {
        if (arr[i] < min) {
            min = arr[i];
            imin = i;
        }       
    }
    for(int i = imin; i > 1; i--) {
        arr[i] = arr[i - 1];
        arr[0] = min;
    }
    for(int i = 0; i < n; ++i)
        cout << arr[i] << " ";
    return 0;
}
к примеру ввод 3 2 1, выводит 1 2 2 а должен 1 3 2, в чем проблема?
1
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
18.05.2011, 13:22 #6
C++
1
2
3
const std::vector<int>::iterator i=std::min_element(vec.begin(),vec.end());
vec.front()=*i;
vec.erase(i);
1
Temirlan90
132 / 132 / 8
Регистрация: 30.09.2010
Сообщений: 333
18.05.2011, 14:36 #7
diagon, а как Ваш код использовать в Моей программе?
0
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
18.05.2011, 14:39 #8
Переделать программу под векторы=)
И насколько я понял задание, при вводе 3 2 1 вывод должен быть 1 2, т.к. минимальный элемент удаляется
0
Temirlan90
132 / 132 / 8
Регистрация: 30.09.2010
Сообщений: 333
18.05.2011, 14:50 #9
И насколько я понял задание, при вводе 3 2 1 вывод должен быть 1 2, т.к. минимальный элемент удаляется
Найти минимальный элемент массива,паставить его на первое место,остальные эл.сдвигаются.

Не по теме:

Переделать под векторы??))) Я тут бессилен)))

0
-comrade-
355 / 356 / 42
Регистрация: 11.06.2010
Сообщений: 703
18.05.2011, 15:00 #10
Цитата Сообщение от Лена касимова Посмотреть сообщение
а)Дана последовательность n элементов в виде массива. Найти минимальный элемент массива,паставить его на первое место,остальные эл.сдвигаются.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
using namespace std;
 
int main()
{
    int i,n;
    cout<<"  N=";
    cin>>n;
    int *a=new int [n];
    cout<<"  Enter elements: ";
    for(i=0;i<n;i++) cin>>a[i];    
    int min=a[0];
    for(i=1;i<n;i++) if(a[i]<min) min=a[i];
    cout<<"  min="<<min<<endl;    
    cout<<"  New array: "<<min<<" ";
    for(i=0;i<n;i++) if(a[i]!=min) cout<<a[i]<<" ";
    delete[] a;
    cout<<endl;
    system("pause");
    return 1;
}
2
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
18.05.2011, 15:00 #11
Тогда так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <vector>
#include <algorithm>
#define size 3
int main(){
    int a[size]= {3,2,1};
    std::vector<int> vec;
    vec.assign(a,a+size);
    for (std::vector<int>::iterator i = vec.begin(); i < vec.end(); i++)
        std::cout << *i << ' ';
    std::cout << std::endl;
    const std::vector<int>::iterator i=std::min_element(vec.begin(),vec.end());
    int temp=*i;
    vec.erase(i);
    vec.insert(vec.begin(),temp);
    for (std::vector<int>::iterator i = vec.begin(); i < vec.end(); i++)
        std::cout << *i << ' ';
    return 0;
}
Вывод: http://liveworkspace.org/code/86d226...6e68b1e9901077
1
Temirlan90
132 / 132 / 8
Регистрация: 30.09.2010
Сообщений: 333
18.05.2011, 15:16 #12
C++
1
2
3
 cout<<"  min="<<min<<endl;    
    cout<<"  New array: "<<min<<" ";
    for(i=0;i<n;i++) if(a[i]!=min) cout<<a[i]<<" ";
-comrade-, хитрый подход =)))
0
-comrade-
355 / 356 / 42
Регистрация: 11.06.2010
Сообщений: 703
18.05.2011, 15:22 #13
Цитата Сообщение от Temirlan90 Посмотреть сообщение
-comrade-, хитрый подход =)))
Где тут хитрость?
0
Temirlan90
132 / 132 / 8
Регистрация: 30.09.2010
Сообщений: 333
18.05.2011, 15:24 #14
Что бы не сдвигать массив, а ставить минимальный элемент на первое место потом выводить без минимального элемента, в Моих глазах Ваше решение вызвало уважение=)))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.05.2011, 15:24
Привет! Вот еще темы с ответами:

Найти максимальный элемент массива и поставить его первым - C++
Доброго времени суток! Очень нуждаюсь в вашей помощи, помогите, пожалуйста, решить задачу: Найти максимальный по модулю элемент...

Найти минимальный элемент массива и его индексы - C++
Динамический массив. Задание Найти минимальный элемент массива и его индексы. Минимальный я нашел. Не могу найти индекс ,если находит...

Найти минимальный элемент массива и сменить его знак - C++
Найти минимальный элемент массива, сменить у него знак и поменять местами с первым элементом. PS: Выккладываю 2 скрина - там код....

Найти минимальный элемент массива и определить его местоположение - C++
Задание:Дан массив чисел. Найти минимальный элемент массива и определить его местоположение. у меня программка неправильное значение...


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

Или воспользуйтесь поиском по форуму:
14
Yandex
Объявления
18.05.2011, 15:24
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru