Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
ArxangelXA
43 / 13 / 1
Регистрация: 20.08.2012
Сообщений: 616
#1

Написать программу для сортировки массива заданного с клавиатуры!

04.10.2013, 23:02. Просмотров 659. Ответов 7
Метки нет (Все метки)

Размерность массива задаем с клавиатуры, элементы массива тоже задаем с клавиатуры.
Элементы массива это буквы английского алфавита. Отсортировать в порядке возрастания. На экран выводим элементы исходного массива и отсортированного. Сортировку можно использовать любую, желательно легкую)

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2013, 23:02
Ответы с готовыми решениями:

Написать программу сортировки по возрастанию заданного массива целых чисел
Написать программу сортировки по возрастанию заданного массива целых чисел ...

Написать функцию сортировки выбором для заданного массива
Задается массив из n точек на плоскости .Написать функцию сортировки выбором...

Написать программу для сортировки массива по возрастанию
Написать программу в с++: Дан массив целых чисел. Написать программу для...

Написать программу для сортировки массива по убыванию суммы цифр элементов
Написать программу для с++: Дан массив целых чисел. Написать программу для...

Написать программу для сортировки массива способами шелла вставки слияния и пузырьком
Написать программу для сортировки массива способами шелла вставки слияния и...

7
newb_programmer
237 / 237 / 113
Регистрация: 03.09.2011
Сообщений: 558
04.10.2013, 23:14 #2
Цитата Сообщение от ArxangelXA Посмотреть сообщение
Размерность массива задаем с клавиатуры, элементы массива тоже задаем с клавиатуры.
Элементы массива это буквы английского алфавита. Отсортировать в порядке возрастания. На экран выводим элементы исходного массива и отсортированного. Сортировку можно использовать любую, желательно легкую)
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
#include <iostream>
using namespace std;
template <typename T>
void insertSort(T a[], long);
int main(){
int size,i;
cout<<"Enter size:\n";
cin>>size;
char* arr=new char[size];
for (i=0;i<size;i++){
    cout<<"Enter arr"<<i<<"\n";
    cin>>arr[i];
}
cout<<"Default array:\n";
for (i=0;i<size;i++)
    cout<<arr[i]<<" ";
cout<<"\n";
insertSort(arr,size);
cout<<"Sorted array:\n";
for (i=0;i<size;i++)
    cout<<arr[i]<<" ";
cout<<"\n";
delete [] arr;
system("pause");
return 0;
}
 
template <typename T>
void insertSort(T a[], long size) {
    T x;
    long i, j;
    for(i=0;i<size;i++){  
        x=a[i];
        for (j=i-1;j>=0&&a[j]>x;j--)
            a[j+1]=a[j];  
        a[j+1] = x;
    }
}
1
ArxangelXA
43 / 13 / 1
Регистрация: 20.08.2012
Сообщений: 616
04.10.2013, 23:27  [ТС] #3
Цитата Сообщение от newb_programmer Посмотреть сообщение
C++
1
template <typename T>
Единственное не понял, что означает эта строка?
0
newb_programmer
237 / 237 / 113
Регистрация: 03.09.2011
Сообщений: 558
04.10.2013, 23:35 #4
Цитата Сообщение от ArxangelXA Посмотреть сообщение
Единственное не понял, что означает эта строка?
создание шаблона функции, чтобы она работала с любым массивом, который вы передадите char/int/double
как бы объявляется внутренний тип данных "T"...
и функция принимает массив типа T
1
ArxangelXA
43 / 13 / 1
Регистрация: 20.08.2012
Сообщений: 616
04.10.2013, 23:36  [ТС] #5
newb_programmer, Большое спасибо)
0
ArxangelXA
43 / 13 / 1
Регистрация: 20.08.2012
Сообщений: 616
14.10.2013, 16:28  [ТС] #6
newb_programmer,
Мне как бы без разницы то что препод не принял он показал как нужно переделать, МНЕ ПРОСТО САМОМУ ХОЧЕТСЯ НАУЧИТСЯ ПИСАТЬ, А Я НИ КАК НЕ ПОНИМАЮ((
Вообщем ваша программа хорошая, но я лажанулся. Препод до меня с вопросами докапался, допустим почему нужно было писать именно так? А я объяснить не могу потому что не понимаю(понимал бы сам написал) Не могли бы вы мне объяснить?
Для чего писать так если можно все в main написать?
C++
1
2
template <typename T>
void insertSort(T a[], long);
Почему написано так хитро и что это обозначает?(то есть массиву присваивается тип данных символьный и size тоже так же только новый символьный) а почему бы ни так?(
C++
1
char arr[100]
)
C++
1
char* arr=new char[size];
и вот эта строчка в сортировке, почему поиск места начинается с (-1)?у нас ведь нет -1 индекса!
C++
1
for (j=i-1;j>=0&&a[j]>x;j--)
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
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int main(){
    int size,i;
    cout<<"Enter size: ";
    cin>>size;
    char arr[100];
    for (i=0;i<size;i++){
       cout<<"Enter arr "<<i<<" = ";
       cin>>arr[i];
}
    cout<<"Default array: ";
    for (i=0;i<size;i++)
    cout<<arr[i]<<" ";
    cout<<"\n";
    insertSort(arr,size);
    cout<<"Sorted array: ";
    for (i=0;i<size;i++)
       cout<<arr[i]<<" ";
       cout<<"\n";
system("pause");
return 0;
 {
    int(a[i])>int(a[i+1]);
    (int) a[i]> (int) a[i+1];
    for(i=1;i<10;i++){  
        for (j=1;j10;j--)
            if((a[i]>a[i])&&(i=j));
            x=a[j];  
        x=a[i];
    }
}
0
newb_programmer
237 / 237 / 113
Регистрация: 03.09.2011
Сообщений: 558
14.10.2013, 18:42 #7
ArxangelXA,
1 - да текст функции можно внести в main, но обычно такие манипуляции выносятся в функции для удобства, упрощения и унификации программы. я когда код набирал я не сочинял сортировку массива а просто вставил код готовой универсальной функции которая работает с любыми массивами.
2-у вас в условии был ввод размера массива с клавиатуры, если вы сделаете
C++
1
char arr[100]
это будет противоречить условиям, хотя можно просто работать с указаным количеством элементов, но опять таки оно не сможет превысить 100 элементов.
3-ну там дальше идет проверка j>=0 так что оно проскочит на 0-м элементе, т.к. его некуда сдвигать=)

ну и код будет так выглядеть
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 <iostream>
using namespace std;
 
int main(){
    int size,i,j;
    cout<<"Enter size: ";
    cin>>size;
    char arr[100];
    for (i=0;i<size;i++){
       cout<<"Enter arr "<<i<<" = ";
       cin>>arr[i];
    }
    cout<<"Default array: ";
    for (i=0;i<size;i++)
    cout<<arr[i]<<" ";
    cout<<"\n";
    //insertSort(arr,size);
    char x;
    for(i=0;i<size;i++){  
        x=arr[i];
        for (j=i-1;j>=0&&arr[j]>x;j--)
            arr[j+1]=arr[j];  
        arr[j+1] = x;
    }
    cout<<"Sorted array: ";
    for (i=0;i<size;i++)
       cout<<arr[i]<<" ";
       cout<<"\n";
    system("pause");
    return 0;
}
Добавлено через 6 минут
пс: если вы не понимаете как работает сортировка-напишите на листике последовательность, например:
4 2 7 1 9
и пошагово пройдите по коду
1
ArxangelXA
43 / 13 / 1
Регистрация: 20.08.2012
Сообщений: 616
14.10.2013, 20:32  [ТС] #8
newb_programmer, Спасибо)
0
14.10.2013, 20:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.10.2013, 20:32

Написать программу сортировки символов, введеных с клавиатуры
помогите сделать две задачи через указатели. уже есть этих же заданий решения...

Написать программу сортировки динамического целочисленного массива
Написать программу сортировки динамического целочисленного массива через...

Написать программу для сортировки
Дан целочисленный массив, состоящий из N элементов. Число N и элементы массива...


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

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

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