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

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

Войти
Регистрация
Восстановить пароль
 
pina4et
0 / 0 / 0
Регистрация: 04.02.2010
Сообщений: 38
#1

Сделать массив упорядоченым... - C++

11.02.2010, 00:37. Просмотров 340. Ответов 5
Метки нет (Все метки)

Дан массив размера N, все элементы которого, кроме первого, упорядочены по возростанию. Сделать массив упорядоченым, переместив первый элемент на новую позицию. Задача на С
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2010, 00:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сделать массив упорядоченым... (C++):

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

Файлы и массив (сделать так, чтобы массив заполнялся значениями из этого же файла) - C++
Здравствуйте.Помогите пожалуйста с задачкой.Я сделал так что бы массив выводился в файл.Каждый элемент массива выводится на новую строку в...

Дан массив из прототипов функций или указателей на функцию, сделать функцию, возвращающую этот массив - C++
Не охота создавать лишнею тему извиняюсь заранее Вопрос такой Можете подсказать есть массив из прототипов функций или...

пытаюсь сделать реализацию через считывание из файла кол-ва чисел, i,но незнаю как сделать реализацию из файла в массив и сортировки. - C++
В файле input.txt находится неизвестное количество вещественных чисел в интервале . Выцапарать их оттуда, отсортировать по убыванию модуля...

Сделать массив расширяемым - C++
Никак не получается сделать динамический массив расширяемым , помогите пожалуйста, где,что не так? #include<iostream> using namespace...

из строки сделать массив - C++
Как можно мою строку превратить в массив символов и работать с ней дальше? void main() { int i.m; char a = 12234; // как из нее...

5
лендер
46 / 46 / 2
Регистрация: 12.01.2010
Сообщений: 183
11.02.2010, 01:19 #2
походу те его просто отсортировать нада
вот методом пузырька:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
const N=10;
int a[N]={4,1,2,3,5,6,7,8,9},i,c,is;
do {
  is=0;
  for(i=1;i<N;i++)
   if(a[i-1]>a[i])
   {
    c=a[i];
    a[i]=a[i-1];
    a[i-1]=c;
    is=1;
   };
} while(is);
осталось только роспечатать, там типа 1 2 3 .... будет.
код не отлажен, могут быть синтаксические ошибки...
0
rangerx
1937 / 1546 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
11.02.2010, 01:28 #3
Дан массив размера N, все элементы которого, кроме первого, упорядочены по возростанию. Сделать массив упорядоченым, переместив первый элемент на новую позицию.
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
#include <stdio.h>
 
#define N 5
 
void swap(int* a, int* b)
{
    int temp = *a;
    *a = *b;
    *b = temp;
}
 
int main()
{
    int index = 0;
    int array[N] = {5,2,4,7,8};
 
    while(array[index] > array[index+1] && index < N-1)
    {
        swap(&array[index], &array[index+1]);
        ++index;
    }
 
    for(index = 0; index < N; ++index)
        printf("%d ", array[index]);
 
    return 0;
}
0
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
11.02.2010, 01:29 #4
массив УЖЕ ОТСОРТИРОВАН. просто если первый элемент не на месте, то нужно его сохранить, найти его место, сдвинуть все которые меньше его на один влево, потом первый вписать "освободившееся" место. без "пузырьков" на этот раз
0
valeriikozlov
Эксперт С++
4673 / 2499 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
11.02.2010, 07:34 #5
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
int main(){
    const int n=10;
    int mas[n]={4, 0, 1, 2, 3, 5, 6, 7, 8, 9}, i, i_st, temp;
    i_st=n-1;
    for(i=1; i_st==n-1 && i<n; i++ )
        if(mas[i]>mas[0])
            i_st=i-1;
    temp=mas[0];
    for(i=0; i<i_st; i++)
        mas[i]=mas[i+1];
    mas[i_st]=temp;
    for(i=0; i<n; i++)
        printf("%d ", mas[i]);
    printf("\n");  
  return 0;
}
1
лендер
46 / 46 / 2
Регистрация: 12.01.2010
Сообщений: 183
11.02.2010, 11:04 #6
Тогда тебе подойдет часть пузырькового рортичования. Какраз под описание задачи:[C]
C
1
2
3
4
5
6
7
8
9
10
11
12
13
const N=10;
int a[N]={4,1,2,3,5,6,7,8,9},i,c;
 
  for(i=1;i<N;i++)
   if(a[i-1]>a[i])
   {
    c=a[i];
    a[i]=a[i-1];
    a[i-1]=c;
    is=1;
   };
   else
     break;
1
11.02.2010, 11:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.02.2010, 11:04
Привет! Вот еще темы с ответами:

Как сделать указатель на массив - C++
Здрасти. Как мне сделать указатель на массив: string stud= {{&quot;49000&quot;, &quot;Eddy&quot;, &quot;Vedder&quot;, &quot;dzienne&quot;, &quot;19&quot;}, {&quot;49001&quot;, &quot;Roger&quot;,...

Как сделать двумерный массив - C++
Доброго времени суток. Допустим с клавиатуры вводятся 25 значений. Как их записать в двумерный массив(чтоб матрица образовалась?. Помогите...

Как массив сделать динамическим? - C++
нужно массив char street сделать динамическим.помогите пожалуйста( #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include...

Как сделать массив классов? - C++
Привет, помогите разобраться, что здесь не так, в чём ошибка? Можно ли делать массив классов, и можно ли пример его роботы, буду...


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

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

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