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

Имеется массив целых чисел a[1]...a[n] - C++

Восстановить пароль Регистрация
 
DebieCooper
 Аватар для DebieCooper
34 / 34 / 1
Регистрация: 12.10.2011
Сообщений: 285
19.10.2011, 12:46     Имеется массив целых чисел a[1]...a[n] #1
Имеется массив целых чисел a[1]..a[n], причем все числа неотрицательны и не превосходят m. Отсортировать этот массив; число действий порядка m+n
Помогите плиз. Только есть 1 просьба. Я учусь на 1 курсе, по возможности напишите так чтобы я разобрался.
Заранее благодарен
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.10.2011, 12:46     Имеется массив целых чисел a[1]...a[n]
Посмотрите здесь:

C++ Определите, имеется ли среди заданных целых чисел * A, B, C хотя бы одно чётное
C++ Дан массив из N целых чисел. Выяснить имеется ли в массиве хотя бы одно нечетное отрицательное число и определить его местонахождение в массиве
Сформировать одномерный массив целых чисел, используя датчик случайных чисел, и распечатать массив. Удалить из массива все элементы, совпадающие с его C++
C++ Определить, имеется ли среди заданных целых чисел A, B, C хотя бы одно чётное
C++ 2)Дан массив из N целых чисел. Получить из него массив отрицательных чисел и отсортировать его по возрастанию методом выбора
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
19.10.2011, 14:27     Имеется массив целых чисел a[1]...a[n] #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
39
40
41
42
43
44
45
46
47
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
 
int main()
{
    long i,j,k,m,n,buf;
    long * a;//Указатель на элементы последовательности
    do
    {
        cout<<"Enter n : ";cin>>n;//Ввели число элементов
        cout<<"Enter m : ";cin>>m;//Ввели предел последовательности
        a = new long[n];//Память под элементы последовательности
        cout<<"\tInput sequence\n";
        srand(time(0));//Чтобі случайные элементы не повторялись
        //Генерируем последовательность случайных чисел
        for(i = 0; i < n; i++)
        {
            a[i] = rand() % m;
            cout<<"a["<<i + 1<<"] = "<<a[i]<<"\n";
        }
        cout<<"\tSorted sequence\n";
        //Cортируем методом прямого выбора
        for(i = 0, k = 0; i < n; i++)
        {
            for(j = i + 1; j < n; j++)
            {
                if(a[j] < a[i])
                {
                    buf = a[i];
                    a[i] = a[j];
                    a[j] = buf;
                    k++;//Счётчик операций
                }
            }
            cout<<"a["<<i + 1<<"] = "<<a[i]<<"\n";
        }
        cout<<"Num operations : "<<k<<"\n";
        cout<<"Sum of m + n   : "<<m + n<<"\n";
        delete [] a;//Чистим память
        cout<<"Enter 1 for new input\n";
        cin>>n;
    }
    while(n == 1);
    return 0;
}
Миниатюры
Имеется массив целых чисел a[1]...a[n]  
Напильнег
480 / 120 / 10
Регистрация: 30.09.2010
Сообщений: 473
19.10.2011, 16:29     Имеется массив целых чисел a[1]...a[n] #3
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Предлагаю использовать метод прямого выбора
Предлагаю сначала прочитать условие задачи.

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
ниже С++ код
Введи n = 100, m = 33, скажем.
 Комментарий модератора 
Уважительный относитесь к другим участникам форума.
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
19.10.2011, 17:12     Имеется массив целых чисел a[1]...a[n] #4
Сортировка сложностью M+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
28
29
30
31
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<conio.h>
#define M 1000
#define N 10
 
void CountSort(int *a, int n)
{
   int count[M] = {0}, i, j, k;
   for (i = 0; i < n; i++)
      count[a[i]]++;
   k = 0;
   for (i = 0; i < M; i++)
      for (j = 0; j < count[i]; j++)
         a[k++] = i;
}
 
int main()
{
    int a[N], i;
    srand(time(NULL));
    for(i = 0; i < N; i++)
        printf("%d ", a[i] = rand() % M);
    puts("\n");
    CountSort(a, N);
    for(i = 0; i < N; i++)
        printf("%d ", a[i]);
    getch();
    return 0;
}
Revol'veR
 Аватар для Revol'veR
23 / 23 / 2
Регистрация: 05.11.2010
Сообщений: 134
19.10.2011, 21:44     Имеется массив целых чисел a[1]...a[n] #5
Напильнег, По поводу чего бы можно так кричать? даже интересно стало)

Подмешали функцию из WinAPI? (Я только учусь)
Напильнег
480 / 120 / 10
Регистрация: 30.09.2010
Сообщений: 473
19.10.2011, 22:14     Имеется массив целых чисел a[1]...a[n] #6
Цитата Сообщение от Revol'veR Посмотреть сообщение
По поводу чего бы можно так кричать? даже интересно стало)
Подмешали функцию из WinAPI? (Я только учусь)
Нет - программа от Thinker действительно содержит логическую ошибку.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
20.10.2011, 07:39     Имеется массив целых чисел a[1]...a[n] #7
Цитата Сообщение от Напильнег Посмотреть сообщение
Нет - программа от Thinker действительно содержит логическую ошибку.
совсем наоборот. Программа от Thinker не содержит логических ошибок.
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
20.10.2011, 12:26     Имеется массив целых чисел a[1]...a[n] #8
Цитата Сообщение от Напильнег Посмотреть сообщение
Нет - программа от Thinker действительно содержит логическую ошибку.

Не по теме:

Складывается ощущение, что кто-то (не будем показывать пальцем) только и умеет воздух руками сотрясать...Хорошо, что умные люди на форуме есть и это понимают
На всякий случай: число M не входит в качестве значения для элементов массива a, хоть по заданию и должно, но это легко решается, если M на единицу больше взять. Второе, говорил уже ранее, что массив count принципиально не динамический. Это пусть TC смотрит и решает, хоть и переделать секундное дело.



Не по теме:

А что касается логических ошибок, то смотрите и анализируйте лучше внимательно, а то кричать "Я-я-я..." мы умеем, а вот проанализировать слабо....

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2011, 19:11     Имеется массив целых чисел a[1]...a[n]
Еще ссылки по теме:

C++ 2)Дан массив из N целых чисел. Получить из него массив отрицательных чисел и отсортировать его по возрастанию методом выбора
C++ Определить, имеется ли среди целых чисел a, b и c хотя бы одно чётное
Задан массив K(m) попарно различных целых чисел. Получить все перестановки целых чисел C++

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

Или воспользуйтесь поиском по форуму:
DebieCooper
 Аватар для DebieCooper
34 / 34 / 1
Регистрация: 12.10.2011
Сообщений: 285
01.11.2011, 19:11  [ТС]     Имеется массив целых чисел a[1]...a[n] #9
А у меня не получается (2008 студия)
Вот что компилятор кричит:
1>------ Построение начато: проект: 12343456, Конфигурация: Debug Win32 ------
1>Компиляция...
1>12343456.cpp
1>d:\games\мои программы\12343456\12343456\12343456.cpp(1) : error C2001: newline в константе
1>d:\games\мои программы\12343456\12343456\12343456.cpp(17) : warning C4244: аргумент: преобразование 'time_t' в 'unsigned int', возможна потеря данных
1>Журнал построения был сохранен в "file://d:\Games\Мои программы\12343456\12343456\Debug\BuildLog.htm"
1>12343456 - ошибок 1, предупреждений 1
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Yandex
Объявления
01.11.2011, 19:11     Имеется массив целых чисел a[1]...a[n]
Ответ Создать тему
Опции темы

Текущее время: 01:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru