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

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

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

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

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

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

из строки сделать массив C++
C++ Сжать массив-как это сделать?
C++ Как массив сделать динамическим?
Двумерный массив покажите как сделать C++
C++ Как сделать указатель на массив
C++ Как сделать динамический массив объектов?
C++ Сделать одномерный массив с использованием указателей
C++ Как сделать двумерный массив
Сделать массив расширяемым C++
Сделать массив доступным в другой функции C++
C++ Как сделать динамический массив из указателей?
Как сделать массив классов? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
лендер
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 .... будет.
код не отлажен, могут быть синтаксические ошибки...
rangerx
1931 / 1540 / 141
Регистрация: 31.05.2009
Сообщений: 2,905
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;
}
novi4ok
550 / 503 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
11.02.2010, 01:29     Сделать массив упорядоченым... #4
массив УЖЕ ОТСОРТИРОВАН. просто если первый элемент не на месте, то нужно его сохранить, найти его место, сдвинуть все которые меньше его на один влево, потом первый вписать "освободившееся" место. без "пузырьков" на этот раз
valeriikozlov
Эксперт C++
4667 / 2493 / 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;
}
лендер
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;
Yandex
Объявления
11.02.2010, 11:04     Сделать массив упорядоченым...
Ответ Создать тему
Опции темы

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