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

Вызвала затруднения сортировка структуры методом слияния - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Оформить в виде функций ввод, просмотр и сумму чисел в непарных столбиках масива http://www.cyberforum.ru/cpp-beginners/thread846601.html
Дан массив m x n. Оформить в виде функций ввод, просмотр и сумму чисел в непарных столбиках масива!
C++ Как записать string в файл? Добрый день, есть код программы, необходимо записать строку в текстовый файл. У меня получаются кракозябры. void table(string n1,string n2,string n3, int mass, int n,string nh1,string nh2,string nh3) { game final; game fin_sort; FILE *out; out=fopen("recording.dat","w"); int tmp,i; setlocale(LC_ALL,"Russian"); cout<<endl; http://www.cyberforum.ru/cpp-beginners/thread846592.html
Нахождения минимальной суммы операций C++
Имеется натуральное число n. За один ход с ним можно произвести следующие действия: Вычесть единицу Разделить на два Разделить на три При этом стоимость каждой операции - текущее значение n. Стоимость преобразования - суммарная стоимость всех операций в преобразовании. Вам необходимо с помощью последовательностей указанных операций преобразовать число n в единицу таким образом, чтобы...
C++ Открыть файл во вложенной папке
Добрый день. К примеру главный программный модуль запускается в каталоге ~/current . Мне нужно получить доступ к файлу находящемуся в ~/current/files . Как это реализовать при помощи стандарта? Мне нужно одинаковый результат работы программы как в linux так и в windows.
C++ Даны целые положительные числа А и B. Найти количество отрезков В, размещенных на отрезке А http://www.cyberforum.ru/cpp-beginners/thread846560.html
Даны целые положительные числа А и В (А>В). На отрезке длины А размещено максимально возможное кол-во орезков длины В(без наложений). Используя операцию деления нацело, найти количество отрезков В, размещенных на отрезке А. Просьба писать через библиотеки stdio.h и conio.h
C++ Как можно сгруппировать по 8 элементов вектора, чтобы записывать в файл? Есть vector<bool> mas(300000); как можно сгруппировать по 8 элементов этого вектора, чтобы записывать в файл. Ведь в файл запись осуществляется побайтно. подробнее

Показать сообщение отдельно
esqulapic
Сообщений: n/a
23.04.2013, 20:00     Вызвала затруднения сортировка структуры методом слияния
Задача состоит в том, чтобы составить телефонный справочник из структур (ФИО,адрес, телефон), а затем, когда пользователь захочет вывести справочник на экран, вывести его в алфавитном порядке. Сортировку по фамилиям произвести сортировкой слияниями. Долго долго мучилась, но смогла реализовать только пузырьковую... помогите пожалуйста сделать нужную сортировку. В интернете конечно примеры есть, но так и не смогла в них разобраться(
Вот код рабочей программы с сортировкой пузырьком:

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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <io.h>
 
 
using namespace std;
 
 
struct telefonnaia_baza
       {char FIO[15];
       char ADRESS[15];
       char NUMBER[15];
       };
 
int main()
{
    telefonnaia_baza tb,b[100],h;
    char filename[]="D://Zadacha9.dat";
    char s='\0';
    char telefon[10];
    char familia[15];
    int dlina,k,i,j;
    FILE *f,*f1;
    f=fopen(filename, "ab");
    do
     {if (f)
       do
         {fflush(stdin);
         printf ("\n");
        
         printf ("количество записей - 2\n");
         printf ("сортировка - 3\n");
         printf ("добавить запись - 4\n");
         printf ("отмена - 0\n");
         s=getchar();
         }
        while (s!='0'&&s!='1'&&s!='2'&&s!='3'&&s!='4'&&s!='5');   
        else  
              {printf("Не удалось открыть файл!\n"); 
              getch();
              return 0;
              } 
        
        if (s=='5')
           {
           f=fopen(filename,"rb");
           while (fread(&tb,sizeof(tb),1,f)!=0)
           printf ("\n %-15s %-15s %-10s", tb.FIO, tb.ADRESS, tb.NUMBER);
           fclose(f);
           }
      
       if (s=='2')
           { k=0;
           f=fopen(filename,"rb");
           while (fread(&tb,sizeof(tb),1,f)!=0)
           k++;
           printf("%d ",k);
           fclose(f);
           }
           
       if (s=='3')
           { k=0;i=0;
           f=fopen(filename,"rb");
           f1=fopen("Zadacha1.dat","ab");
           while (fread(&b[i],sizeof(tb),1,f)!=0)
           {k++;i++;}
          
          
           fseek (f,0,0);
           for (i=0; i<k;i++)
           {
               for (j=0; j<k;j++)
                   {if (strcmp(b[i].FIO,b[j].FIO)<0)
                   {h=b[i];
                   b[i]=b[j];
                   b[j]=h;
                   }
                   }
           }
           fclose(f);
           f=fopen(filename,"wb");
           
            fseek (f,0,0);
            for (i=0; i<k;i++)
           fwrite(&b[i],sizeof(tb),1,f);
           }
          if (s=='4')
       {
       
       {do
          { fflush (stdin);
          f=fopen(filename, "ab");
          printf("\n фио: ");
          scanf("%s", &tb.FIO);
          printf ("\n адрес: ");
          scanf("%s", &tb.ADRESS);
          printf ("\n телефон: ");
          scanf("%s", &tb.NUMBER);
          fwrite(&tb,sizeof(tb),1,f);
          printf ("\n Продолжить ввод? [Г„/ГЌ] ");
          fflush (stdin);
          s=getchar();
          
          }
       while (s=='д'||s=='Д');
       }
 
       } 
           
           
           printf ("\n Еще действие? [д/н] ");
    fflush (stdin);
    s=getchar();
    } 
while (s=='Д'||s=='д');   
}
Заранее спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru