Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
DebieCooper
34 / 34 / 1
Регистрация: 12.10.2011
Сообщений: 301
1

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

19.10.2011, 12:46. Просмотров 806. Ответов 8
Метки нет (Все метки)

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

Дан массив из N целых чисел. Выяснить имеется ли в массиве хотя бы одно нечетное отрицательное число и определить его местонахождение в массиве
1. Дан массив из N целых чисел. Выяснить имеется ли в массиве хотя бы одно...

Задан массив K(m) попарно различных целых чисел. Получить все перестановки целых чисел
Помогите пожалуйста с программой. Задан массив K(m) попарно различных целых...

Определить, имеется ли среди целых чисел a, b и c хотя бы одно чётное
Определить, имеется ли среди целых чисел a, b и c хотя бы одно чётное. Как...

Определите, имеется ли среди заданных целых чисел * A, B, C хотя бы одно чётное
1. Определите, имеется ли среди заданных целых чисел * A, B, C хотя бы одно...

Определить, имеется ли среди заданных целых чисел A, B, C хотя бы одно чётное
Помогите пожалуйста решить задачу на си++ Определите, имеется ли среди...

8
-=ЮрА=-
Заблокирован
Автор FAQ
19.10.2011, 14:27 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;
}
0
Миниатюры
Имеется массив целых чисел a[1]...a[n]  
Напильнег
481 / 119 / 17
Регистрация: 30.09.2010
Сообщений: 473
19.10.2011, 16:29 3
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Предлагаю использовать метод прямого выбора
Предлагаю сначала прочитать условие задачи.

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
ниже С++ код
Введи n = 100, m = 33, скажем.
 Комментарий модератора 
Уважительный относитесь к другим участникам форума.
0
Thinker
Эксперт С++
4233 / 2207 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
19.10.2011, 17:12 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;
}
0
Revol'veR
23 / 23 / 4
Регистрация: 05.11.2010
Сообщений: 134
19.10.2011, 21:44 5
Напильнег, По поводу чего бы можно так кричать? даже интересно стало)

Подмешали функцию из WinAPI? (Я только учусь)
0
Напильнег
481 / 119 / 17
Регистрация: 30.09.2010
Сообщений: 473
19.10.2011, 22:14 6
Цитата Сообщение от Revol'veR Посмотреть сообщение
По поводу чего бы можно так кричать? даже интересно стало)
Подмешали функцию из WinAPI? (Я только учусь)
Нет - программа от Thinker действительно содержит логическую ошибку.
0
valeriikozlov
Эксперт С++
4686 / 2512 / 751
Регистрация: 18.08.2009
Сообщений: 4,550
20.10.2011, 07:39 7
Цитата Сообщение от Напильнег Посмотреть сообщение
Нет - программа от Thinker действительно содержит логическую ошибку.
совсем наоборот. Программа от Thinker не содержит логических ошибок.
1
Thinker
Эксперт С++
4233 / 2207 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
20.10.2011, 12:26 8
Цитата Сообщение от Напильнег Посмотреть сообщение
Нет - программа от Thinker действительно содержит логическую ошибку.

Не по теме:

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



Не по теме:

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

2
DebieCooper
34 / 34 / 1
Регистрация: 12.10.2011
Сообщений: 301
01.11.2011, 19:11  [ТС] 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 ==========
0
01.11.2011, 19:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2011, 19:11

Дан массив целых чисел,произвести для него следующие операции: для каждого из чисел ,входящего в массив,указать,сколько раз оно входит в массив...
помогите!!!((( дан массив целых чисел,произвести для него следующие операции:...

6. Определить, имеется ли среди заданных целых чисел A, B, C хотя бы одно четное. Предусмотреть проверку вводимых данных на отрицательность
6. Определить, имеется ли среди заданных целых чисел A, B, C хотя бы одно...

Преобразовать одномерный массив вещественных случайных чисел в массив целых чисел
Преобразовать одномерный массив вещественных случайных чисел в массив целых...


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

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

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