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

Отсортировать введенные записи по возрастанию значений ключей

28.09.2013, 17:24. Показов 886. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
С клавиатуры ввести набор записей с полями: <Ключ> <Сообщение> (ключ - целое число). Отсортировать введены записи по возрастанию значений ключей. В отсортированный массив ввести две новые записи так, чтобы сохранить общую упорядоченность массива. Распечатать результирующий массив. ( Использовать функции). Помогите пожалуйста уже почти неделю сижу.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.09.2013, 17:24
Ответы с готовыми решениями:

Отсортировать массив по возрастанию значений элементов
№ 1. Задать с клавиатуры одномерный целочисленный массив из N элементов. Отсортировать массив по...

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

Введенные данные сгруппировать по возрастанию номера Школы, а в пределах Школы - по возрастанию Класса
Добрый день. Начинается сессия и, как не прискорбно мне это говорить, на программирование времени...

Отсортировать введение записи по возрастанию значений ключей
Уважаемые форумчане, нужна ваша помощь в решении задачи: С клавиатуры ввести набор структур с...

4
2664 / 2239 / 240
Регистрация: 03.07.2012
Сообщений: 8,141
Записей в блоге: 1
28.09.2013, 17:52 2
Поделись результатом... Или просто неделю сидишь?
0
0 / 0 / 0
Регистрация: 03.05.2013
Сообщений: 13
29.09.2013, 12:31  [ТС] 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
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define N 25
 
int j,n,l=0,choose,p;
int main(void){
    clrscr();
    struct arr{
        char pv[N];
        int kl;
    }st[N],i,*pst1,*pst2;
    
    printf("\nVvedite koli4estvo zapisey: \n");
    scanf("%d", &n);
    for(j=0;j<n;j++){
        printf("%2d. Kluch: ", j+1);
        scanf("%d", &st[j].kl); getchar();
        printf("Soobwenie: ");
        gets(st[j].pv);
    }
    inv: n=n+l;
// SORT.start
    for(j=0;j<n-1;j++){
        pst1=st; pst2=st+1;
        for( ;pst2<st+n-j;pst1++,pst2++){
            if(pst1->kl>pst2->kl){
                i=*pst1;
                *pst1=*pst2;
                *pst2=i;
            }
        }
    }
// SORT.end
    puts("\nSpisok:\n     <Kluch>   <Soobwenie>");
    for(j=0;j<n;j++){
        printf("%2d.   %d       %s\n", j+1, st[j].kl, st[j].pv);
    }
    printf("Bolwe zapisey?(1 - DA , 0 - NET)\n");
    scanf("%d", &choose);  getchar();
    if(choose!=0){
        ;
    }
    if(choose==1){
            j=n-1;
            printf("Kluch: ");
            scanf("%d", &st[j+1].kl); getchar();
            printf("Soobwenie: ");
            gets(st[j+1].pv);
            j++;
            l=1;
        goto inv;
    }
    system("pause");
    return 0;
}
ну как-то так, только нужно хотя бы цикл СОРТ сделать отдельной функцией, что уменя не выходит, глобальн. переменные и что-бы структура была через typedef , заранее извиняюсь если очень все криво
0
0 / 0 / 3
Регистрация: 01.10.2014
Сообщений: 97
20.11.2014, 15:31 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Как переделать цикл сорт в функцию??

Добавлено через 15 часов 28 минут
ritero,
вот что то пробовал, поправте.
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
#include <stdio.h>
#include <iostream>
//#include <conio.h>
#include<stdlib.h>
//#include <string.h>
#define N 25
using namespace std;
//void SORT(int,int)
void SORT(int,int,int){
    for(j=0;j<n-1;j++){
        pst1=st; pst2=st+1;
        for( ;pst2<st+n-j;pst1++,pst2++){
            if(pst1->kl>pst2->kl){
                i=*pst1;
                *pst1=*pst2;
                *pst2=i;
            }
        }
    }
}
int j,n,l=0,choose,p;
int main(void){
    
    //clrscr();
    struct arr{
        char pv[N];
        int kl;
    }st[N],i,*pst1,*pst2;
    
   // printf("\nVvedite koli4estvo zapisey: \n");
    cout<<"\n Vveditm k-st zapisiv: "<<endl;
//  scanf("%d", &n);
  cin>>n;
    for(j=0;j<n;j++){
        //printf("%2d. Kluch: ", j+1);
        cout<<"Kluch: "<<j+1<<endl;
        //scanf("%d", &st[j].kl); 
        cin>>st[j].kl;
        getchar();
                //printf("Soobwenie: ");
        cout<<"Message: "<<endl;
        gets(st[j].pv);
    }
    //inv: n=n+l;
// SORT.start
    void SORT(int,int,int);
// SORT.end
    puts("\nSpãusok:\n     <Kluch>   <Message>");
    for(j=0;j<n;j++){
        printf("%2d.   %d       %s\n", j+1, st[j].kl, st[j].pv);
      
      // cout<<" "<<(j+1)<<st[j].kl<<st[j].pv<<endl;
    }
    //printf("Bolwe zapisey?(1 - DA , 0 - NET)\n");
    cout<<"More note?  (1 - YES , 0 - N)"<<endl;
   // scanf("%d", &choose);  
   cin>>choose;
   getchar();
    if(choose!=0){
        ;
    }
    if(choose==1){
            j=n-1;
            //printf("Kluch: ");
            cout<<"Kluch: "<<endl;
            //scanf("%d", &st[j+1].kl); 
            cin>>st[j+1].kl;
            getchar();
            //printf("Message: ");
            cout<<"Message: "<<endl;
            gets(st[j+1].pv);
            j++;
            l=1;
        //goto inv;
        void SORT(int,int,int);
    }
    system("CLS");
 
    system("pause");
    return 0;
}
0
41 / 2 / 2
Регистрация: 20.12.2013
Сообщений: 35
20.11.2014, 23:18 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
29
30
31
32
struct Node
{
    int val;
    Node *next;
    Node(int n) {       // Интуитивная инициализация
        val = n;
        next = NULL;
    }
};
 
struct List
{
    Node *first;
    List() {
        first = NULL;
    }
};
 
Node *obrat(List *list1, List **list2)
{
    Node *temp, *temp2;/*2 указателя*/
    List *list2 = NULL;/*list2 присвоен NULL*/
    temp = list1->first;/*temp указывает на list1*/
    while (temp)/*Пока не пуст*/
    {
        temp2 = temp->next;/*temp2 указывает на предыдущий temp-у элемент*/
        temp->next = *list2;/*Предыдущий temp-y элемент указывает на верхушку list2*/
        *list2 = temp;/*list2 указывает на верхушку temp*/
        temp = temp2;/*temp указывает на temp2, т.е. перешли на предыдущую ячейку*/
    }
    return temp;
}
0
20.11.2014, 23:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.11.2014, 23:18
Помогаю со студенческими работами здесь

Отсортировать введенные числа по возрастанию и по убыванию
Здраствуйте. Задание Пользователь вводит 10 чисел, отсортировать и вывести на экран по...

Отсортировать по возрастанию и по убыванию введенные числа
Здраствуйте. Пользователь вводит 10 чисел, отсортировать ихпо возростанию и по убыванию

Описать процедуру Ynop, упорядочивающую записи таблицы T по возрастанию их ключей
Помогите пожалуйста с задачей: const n =…; type запись = record ключ: integer; тело: array...

Отсортировать записи по возрастанию среднего балла
Дан файл SCHOOL, в котором содержится информация о школьниках: 1) Ф.И.О. 2) год рождения,...


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

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