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

Функция сортировки одномерного массива

21.10.2014, 16:46. Показов 712. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Помогите пожалуйста переделать функцию сортировки массива (в коде func2 - сделана сортировка элементов массива по возрастанию) с помощью указателей. Нужно нечётные элементы поставить в начало списка, а чётные - в конец списка. Спасибо.

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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
 
int func1();
int func2();
int Mas[20];
int main(int argc, char *argv[])
 {
    int El;
    srand(time(0));
    if ((argc>1)&&(!strcmp(argv[1],"-rand"))){
        for (El=0; El<20; El++){
        Mas[El]=rand()%100-50;
        printf("%d\n",Mas[El]);
            }}
     else{
    
    printf("vvedite znachenie elementa massiva\n");
    for (El=0; El<20; ++El){
     printf ("%d)" ,El);
     scanf("%d",&Mas[El]);}
     
    // printf ("%d)" ,El);} 
 
}
func1();
func2();
return 0 ;}
    
int func1()
{   
int k,El,max,s,l,f;
max=Mas[0];
k=0;
for (El=0; El<20; El++)
if (max<Mas[El])
{max=Mas[El];
k=El;
}
printf("\nmaks nomer elementa=%d",k); 
 
s=1;
f=-1;
l=-1;
for (El=0; El<20; El++)
 
    if (Mas[El]==0)
        {
        l=El;
        break;
        }
    if (l==-1) 
    
    
        printf("\nnet nulej\n"); 
    
for(El=l+1; El<20; El++)
    if (Mas[El]==0)
    {
        f=El;
        break;
    }
        
    for (El=l+1; El<f; El++)
    
        
        
        s=s*Mas[El];
        
    printf("\nproizvedenie=%d",s); 
//printf("\n%d",Elf);
return;}
 
int func2()
{
int num,i,j;    
num=20;
     for( i= 0 ; i < num ; i++) { 
      
       for(j = 0 ; j < num - i - 1 ; j++) {  
           if(*(Mas+j) > *(Mas+j+1)) {           
              
              int tmp = *(Mas+j);
     *(Mas+j) = *(Mas+j+1); 
     *(Mas+j+1) = tmp; 
           }
        }
    }
    for (i=0; i<num; i++){
    printf("\n>%d",*(Mas+i));   }
    
    
return;}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.10.2014, 16:46
Ответы с готовыми решениями:

Реализовать четыре различных алгоритма сортировки одномерного целочисленного массива
Добрый день. Разработать программу на языке «Си», реализующую четыре различных алгоритма...

Функция от одномерного массива
Можно ли как-нибудь в Си создать функцию (функцию пользователя) от одномерного вещественного...

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

Функция челночной сортировки целочисленного массива
Написал код, а вот с функцией проблема. Написать и протестировать функцию челночной сортировки...

1
...
1906 / 1326 / 965
Регистрация: 12.02.2013
Сообщений: 2,172
22.10.2014, 05:24 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
// ...
 
void write(const int* array, size_t size) {
    while (size--) {
        printf("%d ", *array++);
    }
    printf("\n");
}
 
void swap(int* a, int* b) {
    int tmp = *a;
    *a = *b;
    *b = tmp;
}
 
int* rated(int* array, size_t size) {
    int* left = array;
    int* right = array + size - 1;
 
    while (left < right) {
        for (; (left < right) && (*left & 1); ++left) { ; }
        for (; (left < right) && !(*right & 1); --right) { ; }
        if (left < right) {
            swap(left, right);
        }
    }
 
    return array;
}
 
int main() {
    // ...
 
    write(rated(M, 20), 20);
 
    return 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
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 <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
 
int random() {
    return rand() % 100 - 50;
}
 
int stdinput() {
    int value;
    return (scanf("%d", &value) == 1) ? value : 0;
}
 
void fill(int* array, size_t size, int (*func)()) {
    while (size--) {
        *array++ = func();
    }
}
 
void write(const int* array, size_t size) {
    while (size--) {
        printf("%d ", *array++);
    }
    printf("\n");
}
 
void swap(int* a, int* b) {
    int tmp = *a;
    *a = *b;
    *b = tmp;
}
 
int* rated(int* array, size_t size) {
    int* left = array;
    int* right = array + size - 1;
 
    while (left < right) {
        for (; (left < right) && (*left & 1); ++left) { ; }
        for (; (left < right) && !(*right & 1); --right) { ; }
        if (left < right) {
            swap(left, right);
        }
    }
 
    return array;
}
 
#define N 20
 
int main(int argc, char* argv[]) {
    int array[N];
    int (*func)() = random;
 
    srand(time(NULL));
 
    if ((1 < argc) && (strcmp(argv[1], "-stdin") == 0)) {
        func = stdinput;
    }
    fill(array, N, func);
 
    write(array, N);
 
    write(rated(array, N), N);
 
    return 0 ;
}
0
22.10.2014, 05:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.10.2014, 05:24
Помогаю со студенческими работами здесь

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

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

Разработать программу сортировки одномерного массива методом выборочной сортировки
Разработать программу сортировки одномерного массива методом выборочной сортировки. Помогите...

Создать программу реализующую два алгоритма сортировки одномерного массива: методом Шелла и быстрой сортировки
ЗАДАЧА. Создать программу реализующую два алгоритма сортировки одномерного массива: сортировка...

Методы сортировки одномерного массива
помогите с задачей: 7.Написать и отладить программу сортировки одномерного массива двумя...

Составить программу сортировки одномерного числового массива от начала массива к элементу с заданным номером по убыванию (методом выбора)
Помогите составить программу на С++. Заданный номер - 28.


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

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