Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 2
Регистрация: 25.04.2015
Сообщений: 60
1

Написать код для сортировки выбором для вещественных, целых чисел и латинских букв

25.04.2015, 15:21. Показов 1138. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
здравствуйте! помогите написать код для сортировки выбором на си для вещественных, целых чисел и латинских букв.
вот для целых
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
 #include <stdio.h>
#include <math.h>
#include <locale.h>
#include <time.h>
 
#define n 5
int main(){
    setlocale(LC_ALL, "rus");
 
    int a[n];  
    int i, j;   
    int buf;   
    int min;    
    clock_t t;
 
    printf("Введите элементы массива:\n");
    for(i=0; i<n; i++){
        scanf("%d", &a[i]);
    }
 
    for(i = 0; i < n-1; i++) {
 
  
    min=i;
        for(j = i+1; j < n; j++)
            if(a[j] < a[min])
                min = j;
 
   
        buf=a[i];
        a[i]=a[min];
        a[min]=buf;
    }
 
    t = clock() - t;
    printf("time = %.f", (float)t / CLOCKS_PER_SEC);
 
   
    for(i=0; i<n; i++)
        printf("\n %d ", a[i]);
 
 
    printf("\n");
 
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.04.2015, 15:21
Ответы с готовыми решениями:

Написать программу для сортировки методом прямых включений латинских букв по алфавиту
Здравствуйте! Помогите написать программу для сортировки методом прямых включений латинских букв...

Написать шаблоны функций для для вычисления суммы произведений двух соседних чисел для трех целых чисел и в одномерном массиве целых чисел
Написать шаблоны функций для для вычисления суммы произведений двух соседних чисел для трех целых...

Написать шаблон функции для сортировки массивов действительных и целых чисел
Заданы элементы массива. Написать шаблон функции для сортировки массивов действительных и целых...

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

7
Администратор
Эксперт .NET
9602 / 4744 / 761
Регистрация: 17.04.2012
Сообщений: 9,592
Записей в блоге: 14
25.04.2015, 16:09 2
Цитата Сообщение от Waw Посмотреть сообщение
C
1
printf("time = %.f", (float)t / CLOCKS_PER_SEC)
Не знаю, зачем вам нужно измерять время сортировки массива в 5 элементов. Оно мизерное при любом методе.
Код для целых переделал
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
#include <stdio.h>
 
#define ARRAY_SIZE 5
 
int main() {
    int array[ARRAY_SIZE];
    // ввод
    for (int i = 0; i < ARRAY_SIZE; i++) {
        scanf("%d", &array[i]);
    }
    // сортировка
    for (int i = 0; i < ARRAY_SIZE - 1; i++) {
        int minIndex = i;
        for (int j = i + 1; j < ARRAY_SIZE; j++) {
            if (array[j] < array[minIndex])
                minIndex = j;
        }
        // swap
        int temp = array[i];
        array[i] = array[minIndex];
        array[minIndex] = temp;
    }
    // вывод
    for (int i = 0; i < ARRAY_SIZE; i++) {
        printf("%d\n", array[i]);
    }
    return 0;
}
Для вещественных меняйте тип array и temp на float, модификатор для ввод и вывода - "%f", для символов - тип меняем на char, модификатор - "%c"
1
0 / 0 / 2
Регистрация: 25.04.2015
Сообщений: 60
26.04.2015, 09:16  [ТС] 3
Спасибо, но ваш код в Code Blocks не запускается, выдаёт ошибку. Я переделал ваш код через рандом, но тут снова какая-то ошибка
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
#include <stdio.h>
#include <stdlib.h>
 
#define RANGE 20
 
int main() {
int ARRAY_SIZE=100;
int array[ARRAY_SIZE];
 
for (int i = 0; i < ARRAY_SIZE; i++) array[i]=rand()%RANGE;
for (int i = 0; i < ARRAY_SIZE; i++) printf("%d element = %d\n", i, array[i]);
printf("\n\n\n");
 
 
 
for (int i = 0; i < ARRAY_SIZE - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < ARRAY_SIZE; j++) {
if (array[j] < array[minIndex])
minIndex = j;
}
 
int temp = array[i];
array[i] = array[minIndex];
array[minIndex] = temp;
}
 
for (int i = 0; i < ARRAY_SIZE; i++) {
printf("%d\n", array[i]);
}
return 0;
}
0
Администратор
Эксперт .NET
9602 / 4744 / 761
Регистрация: 17.04.2012
Сообщений: 9,592
Записей в блоге: 14
26.04.2015, 12:25 4
Цитата Сообщение от Waw Посмотреть сообщение
код в Code Blocks не запускается, выдаёт ошибку
Так напишите, что за ошибка. Я тестировал свой код на компиляторе MinGW в среде CodeLite, он компилируется без ошибок и предупреждений. Ваш тоже, кстати говоря.

Waw, используйте теги форматирования кода, для Си
Код
[C][/C]
0
0 / 0 / 2
Регистрация: 25.04.2015
Сообщений: 60
26.04.2015, 13:21  [ТС] 5
для каждого for выходит ошибка :

||=== Build: Debug in лооо (compiler: GNU GCC Compiler) ===|
D:\prog\лооо\main.c||In function 'main':|
D:\prog\лооо\main.c|10|error: 'for' loop initial declarations are only allowed in C99 mode|
D:\prog\лооо\main.c|10|note: use option -std=c99 or -std=gnu99 to compile your code|
D:\prog\лооо\main.c|11|error: redefinition of 'i'|
D:\prog\лооо\main.c|10|note: previous definition of 'i' was here|
D:\prog\лооо\main.c|11|error: 'for' loop initial declarations are only allowed in C99 mode|
D:\prog\лооо\main.c|16|error: redefinition of 'i'|
D:\prog\лооо\main.c|11|note: previous definition of 'i' was here|
D:\prog\лооо\main.c|16|error: 'for' loop initial declarations are only allowed in C99 mode|
D:\prog\лооо\main.c|18|error: 'for' loop initial declarations are only allowed in C99 mode|
D:\prog\лооо\main.c|28|error: redefinition of 'i'|
D:\prog\лооо\main.c|16|note: previous definition of 'i' was here|
D:\prog\лооо\main.c|28|error: 'for' loop initial declarations are only allowed in C99 mode|
||=== Build failed: 8 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
0
Администратор
Эксперт .NET
9602 / 4744 / 761
Регистрация: 17.04.2012
Сообщений: 9,592
Записей в блоге: 14
26.04.2015, 19:43 6
Нужно включить поддержку стандарта C99. Проходим в меню "Project->Properties->Build Targets->Build Options->Compiler Settings->Other Options", там приписываем -std=c99
Миниатюры
Написать код для сортировки выбором для вещественных, целых чисел и латинских букв  
0
Администратор
Эксперт .NET
9602 / 4744 / 761
Регистрация: 17.04.2012
Сообщений: 9,592
Записей в блоге: 14
26.04.2015, 19:44 7
Либо писать код в стиле ANSI C - переменные цикла for определяем раздельно
C
1
2
3
4
int i;
for (i = 0; i < ARRAY_SIZE; i++) {
    // ...
}
0
0 / 0 / 2
Регистрация: 25.04.2015
Сообщений: 60
26.04.2015, 20:31  [ТС] 8
Спасибо! Всё получилось. Теперь бы понять как для букв это делается
0
26.04.2015, 20:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.04.2015, 20:31
Помогаю со студенческими работами здесь

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

Код для нахождения прямого кода для вещественных чисел
#include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; void cvbnm(double k, double f) {...

Не могу найти ошибку. Нужно написать функцию обмена значениями для 2 целых чисел. Вот мой код
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include&lt;iostream&gt; using namespace std; void F(int a,...

Написать две функции сортировки массива целых чисел, реализующих заданные алгоритмы сортировки – один из класса квадрат
#include &lt;stdio.h&gt; #include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include &lt;stdlib.h&gt; #include...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru