0 / 0 / 0
Регистрация: 14.09.2013
Сообщений: 148
1

Одномерный массив (максимальный из отрицательных элементов и поменять его местами с последним)

01.11.2013, 07:15. Показов 3711. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пожалуйста подскажите как найти: максимальный из отрицательных элементов и поменять его местами с последним.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.11.2013, 07:15
Ответы с готовыми решениями:

Одномерный массив Х(15) считать из файла *.txt (файл создать самим). Найти: Максимальный из отрицательных элементов и поменять его местами с после
#include <iostream.h> #include <fstream.h> void read_matr(double X) { ifstream f("matr.txt");...

В одномерном массиве найти максимальный из отрицательных элементов, поменять его местами с последним элементом
Помогите, пожалуйста, решить еще одну задачу по информатике =) В одномерном массиве найти...

Как найти максимальный из отрицательных эл-ов и поменять его местами с последним эл-ом массива
дан одномерный массив , как найти максимальный из отрицательных эл-ов и поменять его местами с...

Максимальный из отрицательных элементов массива поменять местами с последним элементом массива
Здравствуйте. Помогите написать программу на языке СИ. Условия программы Введите одномерный...

7
Заблокирован
01.11.2013, 08:31 2
ну тебе же не подойдут примеры с использованием STL. теж надо так, как тебе препод сказал сделать, так что свой код в студию
1
2062 / 618 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
01.11.2013, 08:54 3
C++
#include <iostream>
using std::cout;
using std::endl;
 
int main()
{
  const int N = 5;
 
  int m[N] = { -6, - 4, -1, -9, -3 };
  int t = 0;
 
  for(int i=0; i<N; i++) cout << m[i] << " ";
  cout << endl;
 
  for(int i=0; i<N; i++) t = m[i] > m[t] ? i : t;
 
  int tmp = m[N-1];
  m[N-1] = m[t];
  m[t] = tmp;
 
  for(int i=0; i<N; i++) cout << m[i] << " ";
  cout << endl;
}
1
81 / 80 / 9
Регистрация: 30.10.2013
Сообщений: 251
01.11.2013, 08:57 4
За спасибо
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
#include <iostream>
 
using namespace std;
 
int main()
{
    int a[10]= {1,4,-7,-4,-5,5,48,-78,5,4};
    int t=0,tm=0;
 
    for(int i=1; i<10; i++)
    {
        if(a[i]<0)
        {
            if(tm)
            {
                t=a[i];
            }
            else
            {
                tm=a[i];
                continue;
            }
            if(t>tm) tm=t;
        }
    }
 
    cout << tm << endl;
    return 0;
}
1
2062 / 618 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
01.11.2013, 09:06 5
C++
// рандомный массив
#include <iostream>
#include <cstdlib>
#include <ctime>
using std::cout;
using std::endl;
 
int main()
{
  srand(time(0));
  const int N = 2+rand()%10;
 
  int m[N];
  for(int i=0; i<N; i++) m[i] = rand()%10 - 10;
  int t = 0;
 
  for(int i=0; i<N; i++) cout << m[i] << " ";
  cout << endl;
 
  for(int i=0; i<N; i++) t = m[i] > m[t] ? i : t;
 
  int tmp = m[N-1];
  m[N-1] = m[t];
  m[t] = tmp;
 
  for(int i=0; i<N; i++) cout << m[i] << " ";
  cout << endl;
}
1
81 / 80 / 9
Регистрация: 30.10.2013
Сообщений: 251
01.11.2013, 09:21 6
У меня в коде только находит за один цикл, замену сам делай.

Добавлено через 14 минут
С заменой как-то так
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
#include <iostream>
 
using namespace std;
 
int main()
{
    int a[10]= {1,4,-7,-4,-5,5,48,-78,5,4};
    int t=0,tm=0,ti=0;
 
    for(int i=0; i<10; ++i)
    {
        if(a[i]<0)
        {
            if(tm)
            {
                t=a[i];
            }
            else
            {
                tm=a[i];
                ti=i;
                continue;
            }
            if(t>tm) tm=t;
        }
    }
 
 
    t=a[10-1];
    a[10-1]=tm;
    a[ti+1]=t;
 
    for(int i=0;i<10;i++)
    cout << a[i] << endl;
 
    return 0;
}
1
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
01.11.2013, 09:23 7
Лучший ответ Сообщение было отмечено как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
template class <TIetm> void SwapLastMaxNeg(TItem *a, size_t Count)
{
 TItem *p;
 TItem *m;
 TItem  Temp;
 for (p=a+Count-2, m=p; p>=a; --p)
 {
  (((*p)<(TItem)0)&&((*p)>(*m)))
  {
   m=p;
  }
 }
 Temp=*(a+Count-1);
 *(a+Count-1)=*m;
 *m=Temp;
}
1
newbie666
01.11.2013, 12:18     Одномерный массив (максимальный из отрицательных элементов и поменять его местами с последним)
  #8

Не по теме:

Цитата Сообщение от chedman Посмотреть сообщение
За спасибо
получилось просто даже не за спасибо :D

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.11.2013, 12:18

Дан двумерный массив. Поменять местами столбец, содержащий наибольшее количество отрицательных элементов, с последним столбцом
Дан двумерный массив. Поменять местами столбец, содержащий наибольшее количество отрицательных...

Получить одномерный массив из из отрицательных элементов матрицы. Поменять местами первый и последний элемент
1 2 -3 -0.5 7 0.1 -1.7 13 -18.5 Я составил начало программы, но возникла...

Найти максимальный элемент и поменять его местами с последним элементом
Дан одномерный массив, который содержит не более 100 вещественных чисел. Найти максимальный элемент...

Найти максимальный элемент массива и поменять его местами с последним элементом
Дан одномерный массив, который содержит не более 200 целых чисел. Найти максимальный элемент и...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru