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

Пузырьковая сортировка - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Удаления символов из строки http://www.cyberforum.ru/cpp-beginners/thread915888.html
Доброго времени суток,в общем создалась проблема в написание программы,которая удаляет из строки все символы a и b,строку нужно ввести с клавиатуры,вроде как задача легкая,перепробовал множество вариантов,но всегда удаляет только до пробела,помогите,пожалуйста.
C++ is a отношение и наследование Ребятки у меня такая проблема: учусь в ввузе, преподают программирование(будущаяя профессия никак не связана с ним) оно мне никак не даётся, препод на зачет задал 2 вопроса, сказал: завтро приди, ответь, поставлю, и так : 1) Привести пример is a отношения без наследования. 2) Привести пример наследования без is a отношения. Я у знакомых спрашивал никто не может ничем помочь, в инете тож... http://www.cyberforum.ru/cpp-beginners/thread915882.html
C++ Пропуск пробела в строке
Здравствуйте, не могу понять, как пропустить пробел в строке: int i; for (i=0; i<strlen(string); i++) if(string==' ') { i++; for (i=' '; i<strlen(string); i++); } else{}
Установить, является ли данное число и палиндромом C++
5. Дано целое число п, удовлетворяющее условию 0< М <2-10^9. Установить, является ли данное число и палиндромом. WWWZWWW, будьте внимательнее с выбором раздела! перенесено из turbo pascal
C++ Проверка на ввод символа http://www.cyberforum.ru/cpp-beginners/thread915857.html
При вводе какого либо символа программа уходит в прострацию надо что бы программ распазновала что это символ и выводила error int main() { unsigned int choice; srand(time(NULL)); std::cout << "To Play write 1, end game 2" << std::endl; std::cin >> choice;
C++ Определить количество целых корней данного уравнения Дано уравнение ax^3+dx+cx(1=0 с целыми коэффициентами (0<|d|<2). Определить количество целых корней данного уравнения. подробнее

Показать сообщение отдельно
unskilled
0 / 0 / 0
Регистрация: 11.05.2013
Сообщений: 6
02.07.2013, 03:30  [ТС]     Пузырьковая сортировка
Ох, объявил, попробовал что-то пофиксить посредством своих кривых рук.
В итоге при сортировке творит что-то неладное с последней записью http://puu.sh/3sVSc.png

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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
#include <stdio.h>
#include <conio.h>
 
#define max_elem 300 
 
typedef struct{ 
    char name[256]; 
    int distance; 
    int ra; 
}bd; 
bd *array[max_elem];
bd databd[max_elem]; 
int num = 0; 
FILE *prfile; 
FILE *file; 
 
void add_elem() //ГґГіГ*êöèÿ äîáГ*âëåГ*ГЁГї ýëåìåГ*ГІГ* Гў ГЎГ*çó
{
    if(num>=max_elem)
    {
        printf("baza perepolnena.\n");
        return;
    }
    printf("Nazvanie Rasstoyanie Kol-vo reysov:"); 
    scanf("%s %d %d\n", &databd[num].name, &databd[num].distance, &databd[num].ra);
    num++; 
    
}
 
void delete_elem() //ГґГіГ*êöèÿ ГіГ¤Г*ëåГ*ГЁГї ýëåìåГ*ГІГ* ГЁГ§ ГЎГ*çû
{
    int i = max_elem;
    printf("vvedite nomer zapisi ot 0 do %d: ", num-1);
    scanf("%d", &i);
    if(i>=num || i<0)
        printf("takoy zapisi net\n");
    else 
    {
        num--;
        int j = 0;
        for(j = i; j<num; j++) 
            databd[j] = databd[j+1];
        printf("zapis' udalena\n");
    }
}
 
void print_elem() //ГґГіГ*êöèÿ âûâîäГ* îäГ*îãî ýëåìåГ*ГІГ* ГЁГ§ ГЎГ*çû
{
    int i = max_elem;
    printf("vvedite nomer zapisi ot 0 do %d: ", num-1);
    scanf("%d", &i);
    if(i>=num || i<0)
        printf("takoy zapisi net\n");
    else
    {
        printf("[%d] %s %d %d\n", i, array[i]->name, array[i]->distance, array[i]->ra);
        fprintf(prfile, "[%d] %s %d %d\n", i, array[i]->name, array[i]->distance, array[i]->ra);
    }
}
 
void print_all() //ГґГіГ*êöèÿ âûâîäГ* ГўГ±ГҐГµ ýëåìåГ*òîâ ГЁГ§ ГЎГ*çû
{   
    int i = 0;
    for(i = 0; i<num; i++)
    {
        printf("[%d] %s %d %d\n", i, array[i]->name, array[i]->distance, array[i]->ra);
        fprintf(prfile, "[%d] %s %d %d\n", i, array[i]->name, array[i]->distance, array[i]->ra);
    }
}
 
void sort_bd() //ГґГіГ*êöèÿ ïóçûðüêîâîé ñîðòèðîâêè
{ 
  bd *tmp;
  int i, j;
  for (i = 0; i < num-1; i++)
  {
    for (j = i+1; j < num; j++)
    {
      if ((array[j]->distance) > (array[j + 1]->distance))
      {
        tmp = array[j];
        array[j] = array[j+1];
        array[j+1] = tmp;
      }
    }
  }
  printf("baza otsortirovana\n");
}
                            
void save_bd() //ГґГіГ*êöèÿ ñîõðГ*Г*ГїГҐГІ ГЎГ*çó Гў ГґГ*éë
{
     file = fopen("databd.txt","w"); 
     if(file == NULL)
     {
         printf("nevozmojno zapisat' v fail");
         return;
     }
     fprintf(file, "%d\n", num); 
     int i = 0;
     for(i=0; i<num; i++) 
         fprintf(file, "%s %d %d\n", array[i]->name, array[i]->distance, array[i]->ra);
     fclose(file); 
     printf("baza zapisana\n");
}
 
void load_bd() //ГґГіГ*êöèÿ ñ÷èòûâГ*Г*ГЁГї ГЎГ*çû ГЁГ§ ГґГ*éëГ*
{
     file = fopen("databd.txt","r"); 
     if(file == NULL)
     {
         printf("nevozmojno otkrit' fail");
         return;
     }
     fscanf(file, "%d\n", &num); 
     if(num >= max_elem) num = max_elem-1; 
     int i = 0;
     for(i=0; i<num; i++) 
         fscanf(file, "%s %d %d\n", &array[i]->name, &array[i]->distance, &array[i]->ra);       
     fclose(file);
     printf("baza schitana\n"); 
}
 
void run_menu() //ГґГіГ*öèÿ âûâîäГ* ìåГ*Гѕ Г°Г*áîòû Г± ГЎГ*çîé
{
    int key = 0;
    while(key != 8){ 
        printf("\n[1] dobavit' zapis'\n");
        printf("[2] udalit' zapis'\n");
        printf("[3] vivesti zapis'\n");
        printf("[4] vivesti vse zapisi\n");
        printf("[5] sortirovat' bazu\n");
        printf("[6] sohranit' bazu v fail\n");
        printf("[7] zagruzit' bazu iz faila\n");
        printf("[8] vihod\n\n");
        scanf("%d",&key); 
        switch(key){ 
            case 1:{
                 add_elem();
                 break;
            }
            case 2:{
                 delete_elem();
                 break;
            }
            case 3:{
                 print_elem();
                 break;
            }
            case 4:{
                 print_all();
                 
                 break;
            }
            case 5:{
                 sort_bd();
                 break;
            }
            case 6:{
                 save_bd();
                 break;
            }
            case 7:{
                 load_bd();
                 break;
            }
        }
    }     
}
 
int main() 
{   int i;
    for(i=0;i<max_elem;i++)
    array[i]=&databd[i];
    prfile = fopen("prn", "w");
    run_menu(); 
    fclose(prfile);
    return 0;
}
 
Текущее время: 00:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru