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

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

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

Распечатать результат в порядке возрастания - C++

15.04.2014, 22:51. Просмотров 227. Ответов 3
Метки нет (Все метки)

Написал код, вроде работает, единственная проблема, нужно, чтобы результат выводился в порядке возрастания, но я не знаю как это сделать...помогите пожалуйста, завтра уже сдать нужно...
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include "stdafx.h"
#include "conio.h"
 
int main()
{
    unsigned int lenthOfArray=0;         //переменная длины массива
    scanf ("%d", &lenthOfArray);                 //считываем длину массива
    
    if ( lenthOfArray<2 || lenthOfArray>20) // проверка на корректность ввода
    {
        printf ("outside the range");
        getch();
        return 0;
    }
 
    //создаем Массив 
    int** Array = new int *[lenthOfArray];
    for (int i = 0; i < lenthOfArray; i++)
        Array[i] = new int [2];
 
    for(int i=0;i<lenthOfArray;i++)
    {
        Array[i][1]=0;                  //заполняем 0 количество повторов для каждого элемента
    }
    unsigned int max=0;
    printf ("\n");
    for(int i=0;i<lenthOfArray;i++)
    {
        scanf ("%d", &Array[i][0]);            //считываем массив
        for(int j=0;j<i;j++)
        {
            if(Array[j][0]==Array[i][0])
                Array[i][1]++;         //увеличиваем на 1, если такой элемент уже встречался
        }
        if ( Array[i][0]<-1000 || Array[i][0]>1000) // проверка на корректность ввода
        {
        printf ("outside the range");
        getch();
        return 0;
        }
    }
 
 
    for(int i=0;i<lenthOfArray;i++)
    {
        if (Array[i][1]>max)
        {
            max=Array[i][1];       //ищем максимальное число повторов
        }
    }
    printf ("\n");
    for(int i=0;i<lenthOfArray;i++)
    {
        if (Array[i][1]==max)
        {
            printf ("%d ", Array[i][0]);   //выводим элементы с максимальным числом повторов
        }
    }
    getch();
 
    for (int i = 0; i < lenthOfArray; i++)
    {
        delete [] Array[i];
    }
    delete [] Array;
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2014, 22:51     Распечатать результат в порядке возрастания
Посмотрите здесь:
C++ Расположить чётные числа массива в порядке возрастания, а нечётные в порядке убывания
C++ Сортировка массива в порядке возрастания и вывод элементов в обратном порядке
Первые десять элементов массива М(30) отсортировать в порядке возрастания, а остальные в порядке убывания C++
Расположить элементы первой половины одномерного массива в порядке возрастания, а второй - в порядке убывания C++
C++ Выведите все числа от A до B включительно, в порядке возрастания, если A < B, или в порядке убывания в противном случае.
Вывести все четные числа массива в порядке возрастания их индексов, а затем все нечетные в порядке убывания C++
C++ Каждый чётный столбец квадратной матрицы расположить в порядке убывания, а каждый нечётный в порядке возрастания
C++ Каждый чётный столбец матрицы расположить в порядке убывания, а каждый нечётный в порядке возрастания
C++ Распечатать в порядке убывания
C++ Вывести 4 числа в порядке возрастания
C++ Упорядочить массив в порядке возрастания.
Выведите числа в порядке возрастания C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NikitaQ
5 / 5 / 1
Регистрация: 10.09.2013
Сообщений: 51
16.04.2014, 00:13     Распечатать результат в порядке возрастания #2
Цитата Сообщение от Frozen_Sky Посмотреть сообщение
чтобы результат выводился в порядке возрастания
Отсортировать и вывести нельзя что ли?
Frozen_Sky
0 / 0 / 0
Регистрация: 17.03.2014
Сообщений: 14
16.04.2014, 00:17  [ТС]     Распечатать результат в порядке возрастания #3
я пытался, и сейчас пытаюсь... у меня кракозябра какая-то выходит, то ли я переменные где-то путаю, то ли значение не то задаю... сюда обратился от безысходности -_-
NikitaQ
5 / 5 / 1
Регистрация: 10.09.2013
Сообщений: 51
16.04.2014, 00:59     Распечатать результат в порядке возрастания #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
30
31
32
33
34
35
36
37
int main()
{
    int sizeOfArr = 0;
    std::cin >> sizeOfArr;
    
    int number[sizeOfArr];
    int repeat[sizeOfArr];
    
    for (int i = 0 ; i < sizeOfArr; i++) {
        std::cin >> number[i];
        repeat[i] = 0;
    }
    
    for (int i = 0 ; i < sizeOfArr ; i++)
        for (int j = 0 ; j < sizeOfArr; j++)
            if (number[i] == number[j])
                repeat[i]++;
    
    int tmp = 0;
    for(int i = 0; i < sizeOfArr - 1; ++i) // i - номер прохода
        for(int j = 0; j < sizeOfArr - 1; ++j) // внутренний цикл прохода
            if (repeat[j + 1] > repeat[j])
            {
                tmp = repeat[j + 1];
                repeat[j + 1] = repeat[j];
                repeat[j] = tmp;
                
                tmp = number[j + 1];
                number[j + 1] = number[j];
                number[j] = tmp;
            }
    
    for (int i = 0 ; i < sizeOfArr ; i++)
        std::cout << "число: " << number[i] << " повторений: " << repeat[i] << std::endl;
    
    return 0;
}
Yandex
Объявления
16.04.2014, 00:59     Распечатать результат в порядке возрастания
Ответ Создать тему
Опции темы

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