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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
enota
0 / 0 / 0
Регистрация: 03.03.2012
Сообщений: 36
#1

Поменять местами наименьшее значение массива с последним элементом (с указателями) - C++

19.03.2012, 22:52. Просмотров 1221. Ответов 7
Метки нет (Все метки)

В массиве C из N элементов найти элемент, имеющий наименьшее значение и поменять его местами с последним элементом. Значение N задать при помощи ввода, а сам массив сформировать из случайных чисел в диапазоне от -100 до 100.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.03.2012, 22:52
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Поменять местами наименьшее значение массива с последним элементом (с указателями) (C++):

Третий положительный элемент поменять местами с последним элементом массива - C++
Третий положительный элемент поменять местами с последним элементом массива. Помогите, буду очень благодарен.

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

наименьшее значение в массиве поменять с последним элементом в массиве - C++
В массиве C из N элементов найти элемент, имеющий наименьшее значение и поменять его местами с последним элементом. Значение N задать при...

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

В массиве из 10 чисел найти наименьший элемент и поменять его местами с последним элементом - C++
В массиве из 10 чисел найти наименьший элемент и поменять его местами с последним элементом Помогите, пожалуйста #include <iostream> ...

Поменять местами максимальный элемент матрицы с его первым элементом а минимальный с последним - C++
ДВУМЕРНЫЙ МАССИВ: Поменять местами максимальный элемент матрицы F(k,p)в его первым элементом, а минимальный элемент – с последним. Найти...

7
R136a1
143 / 112 / 15
Регистрация: 14.04.2011
Сообщений: 261
19.03.2012, 23:11 #2
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
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <iomanip>
#include <algorithm>
 
int main()
{
        int n;
        int *mass;
 
        std::cout << "Введите N: ";
        std::cin >> n;
 
        mass = new int[n];
 
        srand(time(NULL));
 
        for(int i = 0; i < n; i++)
        {
                mass[i] = rand() % 201 - 100;
 
                std::cout << std::setw(5)  << mass[i];
        }
 
        std::cout << std::endl;
 
        std::swap(mass[int(std::find(mass,mass+n,*std::min_element(mass,mass+n)) - mass)],mass[n-1]);
 
        for(int i = 0; i < n; i++)
                std::cout << std::setw(5) << mass[i];
 
        std::cout << std::endl;
 
        delete[] mass;
 
        return 0;
}
0
rangerx
1941 / 1550 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
20.03.2012, 00:14 #3
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
// ------------------
 
void swap(int* a, int* b)
{
   int t = *a;
   *a = *b;
   *b = t;
}
 
// -------------------
 
int random_range(int low, int high)
{
   return rand() % (high - low + 1) + low;
}
 
// ------------------
 
void write_arr(int* arr, int n)
{
   int i;
   for(i = 0; i < n; ++i)   
      printf("%d ", arr[i]);
   putchar('\n');
}
 
// ------------------
 
int* min_element(int* arr, int n)
{
   int i;
   int* min = &arr[0];
   for(i = 1; i < n; ++i)
      if(arr[i] < *min) min = &arr[i];   
 
   return min;
}
 
// ------------------
 
int main(void)
{   
   int n, i; 
   int *min;
   int* c;
 
   printf("input n: ");
   if(scanf("%d", &n) != 1 || n < 1) return 1;
 
   c = (int*)malloc(n * sizeof(int));
   if(!c) return 2;
 
   srand(time(NULL));
 
   for(i = 0; i < n; ++i)   
      c[i] = random_range(-100, 100);      
   
   write_arr(c, n);
   min = min_element(c, n);
   swap(min, c + n - 1);
   write_arr(c, n);
   free(c);
 
   return 0;
}
1
enota
0 / 0 / 0
Регистрация: 03.03.2012
Сообщений: 36
22.03.2012, 22:33  [ТС] #4
извините,но чего то он не меняет или не так как нужно
0
rangerx
1941 / 1550 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
22.03.2012, 23:32 #5
enota, уточните какой из предложенных вариантов у вас не работает, и приведите пример входных и выходных данных по которым было бы видно, что программа работает неверно.
0
enota
0 / 0 / 0
Регистрация: 03.03.2012
Сообщений: 36
26.03.2012, 10:48  [ТС] #6
извините,а что это значит?
C
1
2
3
4
 int random_range(int low, int high)
{
   return rand() % (high - low + 1) + low;
}
может что попроще

Добавлено через 55 минут
помогите,пожалуйста,разобраться
0
rangerx
1941 / 1550 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
26.03.2012, 11:54 #7
Цитата Сообщение от enota Посмотреть сообщение
извините,а что это значит?
int random_range(int low, int high)
функция генерации числа в диапазоне от low до high.
Цитата Сообщение от enota Посмотреть сообщение
может что попроще
C
1
2
3
4
5
6
for(i = 0; i < n; ++i)   
{
    // rand() % 201 даст случайное число от 0 до 200, 
    // отнимаем от него 100 и получаем число в диапазоне от -100 до 100
    c[i] = rand() % 201 - 100; 
}
0
Nameless One
Эксперт С++
5783 / 3432 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
26.03.2012, 12:27 #8
Цитата Сообщение от enota Посмотреть сообщение
помогите,пожалуйста,разобраться
ты сначала ответь на вопросы, которые тебе задали тут
0
26.03.2012, 12:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.03.2012, 12:27
Привет! Вот еще темы с ответами:

Найти максимальный по абсолютной величине элемент и поменять его местами с последним элементом матрицы - C++
&quot;Дан двумерный массив, который содержит не более 10 строк и не более 10 столбцов. Найти максимальный по абсолютной величине элемент и...

Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их местами с первым и последним элементом - C++
Я решила задачку но что-то не так(ошибки никак не исправлю... помогите исправте ошибки,что не правильно я сделала /*Дана матрица B....

Максимальный элемент массива поменять с последним элементом - C++
Дан двумерный массив, который содержит не более 10 строк и не более 10 столбцов. Найти максимальный по абсолютной величине элемент и...

Массивы. Найти максимальный элемент и поменять его с последним элементом массива - C++
Задан двухмерный массив целых чисел A. Найти максимальный элемент и поменять его с последним элементом массива. Помогайте:(


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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