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

вывод массива в сортировке - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Написать программу подсчета суммы М http://www.cyberforum.ru/cpp-beginners/thread571027.html
Написать программу подсчета суммы М введенных с клавиатуры чисел. Использовать функцию.
C++ Описать процедуру TrianglePS(a, P), вычисляющую Описать процедуру TrianglePS(a, P), вычисляющую по стороне a равностороннего треугольника его периметр P = 3•a a — входной, P — выходной параметр; все параметры являются вещественными). С помощью этой процедуры найти периметры трех равносторонних треугольников с данными сторонами. http://www.cyberforum.ru/cpp-beginners/thread571023.html
C++ Не получается написать программу обработки массивов
Доброго времени суток! Помогите пожалуйста составить програму по заданию: Дан массив, состоящий из n натуральных чисел. Образовать новый массив, элементами которого будут элементы исходного, оканчивающиеся на цифру k.
C++ Как добавить новый узел в XOR связный список?
Ребятки, помогите разобраться с програмкой:): В качестве аргумента командной строки программе передаются числа n и a. Используя структуры создать XOR связный список из n узлов. Для хранения чисел в узлах ис-пользовать объединения. В 1-ом узле должно быть записано число a, во 2-ом 2*a и так далее. Для каждого узла вывести значение хранимого числа в виде 4-ех сим-волов (char). Предусмотреть...
C++ Пузырьковая сортировка 2 массивов. Каждый массив в отдельном потоке http://www.cyberforum.ru/cpp-beginners/thread570972.html
Здравствуйте! Пузырьковая сортировку 2 массивов параллельно, то есть каждый массив в отдельном потоке сортируется! 2 потока, 2 массива #include "windows.h" #include "process.h" #include "iostream"
C++ Найти количество цифр в натуральном числе N, вводимом с клавиатуры. Borland C++ Нужна помощь! Максимальная длинна числа при котором правильно считает 10. Как сделать так, чтоб программа считала количество цифр больше 10??? /* Задание 3.100 Найти количество цифр в натуральном числе N, вводимом с клавиатуры.*/ #include <stdio.h> #include <conio.h> void main() подробнее

Показать сообщение отдельно
almostclever
1 / 1 / 0
Регистрация: 04.03.2012
Сообщений: 101
12.05.2012, 13:02     вывод массива в сортировке
В функции сортировки при каждом выполнении цикла надо выводить текущий массив, после сортировки.
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
void sort2(int a[],int n)
{
    int countswap=0; //счетчик обменов
    int countcompare=0; //счетчик сравнений
    int i,k,j;
    for (i=0;i<n;++i)
    {
    int temp=a[i]; //текущая позиция
    printf("\nТекущая позиция: %d\n",temp);
    int left=0; //левый край
    int right=i; //правый край
    while (left<right) //пока левый край меньше правого
    {
    int middle=(left+right)/2; //находим середину
    printf("%d ",temp);
        if (temp>=a[middle])//если элемент больше середины
    { 
     
        left = middle + 1; //левый край правее середины
    }
    else
    right=middle; //иначе правый край равен середине
    printf("сравниваем с %d\n",a[middle]);
    countcompare++;
    }
        for (j=i;j>left;--j)
    {
        k=a[j-1];
        printf("%d обмениваем",a[j]);
        a[j-1]=a[j]; //обмен
        a[j]=k;
        printf(" с %d\n",a[j]);
        countswap++;
 
    }
    //system("pause");
    sleep(1000);
    } 
    printf("\n\nКоличество сравнений: %d\n",countcompare);
    printf("Количество обменов: %d\n",countswap);
}
когда делал с чар массивом, это было легко, а вот с инт массивом не могу разобраться. Прошу помоч.

поясню.вот та же функция только для чар массива, тут я делал вывод массива:
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
void sort(char a[],int n)
{
     
    int countswap=0; //счетчик обменов
    int countcompare=0; //счетчик сравнений
    int i,k,j;
    for (i=0;i<n;++i)
    {
    int temp=a[i]; //текущая позиция
    printf("\nТекущая позиция: %c\n",temp);
    int left=0; //левый край
    int right=i; //правый край
    while (left<right) //пока левый край меньше правого
    {
    int middle=(left+right)/2; //находим середину
    printf("%c ",temp);
    //printf("\nсередина: %d",middle);
    if (temp>=a[middle])//если элемент больше середины
    { 
     
        left = middle + 1; //левый край правее середины
    }
    else
    right=middle; //иначе правый край равен середине
        printf("сравниваем с %c\n",a[middle]);
    countcompare++;
    }
        for (j=i;j>left;--j)
    {
        k=a[j-1];
        printf("%c обмениваем",a[j]);
        a[j-1]=a[j]; //обмен
        a[j]=k;
        printf(" с %c\n",a[j]);
        countswap++;
 
        }
     system("pause");
     //sleep(1000);
      printf("\nМассив: %s",a);
        
    }
    printf("\n\nКоличество сравнений: %d\n",countcompare);
    printf("Количество обменов: %d\n",countswap);
}
Добавлено через 16 часов 18 минут
вот тут я вывожу:
C
1
printf("\nМассив: %s",a);
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 13:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru