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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
w0nder
0 / 0 / 0
Регистрация: 23.11.2012
Сообщений: 131
#1

Где в коде ошибка(-и)? Компилируется, но выкидывает "name.exe has stopped working" - C++

30.04.2013, 17:14. Просмотров 312. Ответов 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
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
#include "stdio.h"
#include "stdlib.h"
#include <string.h>
#include "iostream"
using namespace std;
 
 
class Elem
{
public:
    char name[256];
    Elem * next;
    Elem (char * n)
    {
        strcpy(name,n);
        next = NULL;
    }
 
};
 
class List
{
protected:
    Elem * first, * last;
 
public:
    Elem * current;
    List(){
        first = last = current = NULL;
    }
 
    void add_element(char * n) {
        Elem * p = new Elem(n);
        if(first == NULL) first= last= p;
        else last=last->next = p;
        current = p;
    }
 
    void delete_element(){
        Elem * p = first;
        first = first->next;
        delete[] p;
 
    }
    void pop(char * arr) {
        Elem * p = first;
        first = first->next;
        strcpy(arr,p->name);
        delete[] p;
    }
 
    int is_empty() {
        return (first == NULL);
    }
 
    void start() {
        current = first;
    }
 
    int end() {
        return (current == NULL);
    }
 
    void next() {
        if(!end()){
            current = current->next;
        }
    }
    void push(char * x) {
        Elem * p = new Elem(x);
        if(first == NULL) first= last= p;
        else {
            p->next = first;
            first = p; }
        current = p;
        }
};
 
int main(void)
{
    List students[26];
    unsigned int x = 0;
 
    //nado sdelatj klass stekov itd.
    FILE  * inFile;
    FILE  * outFile;
    // 97 - 122 = a - z
    char name[256];
 
    inFile = fopen("paldies.in", "r");
    outFile = fopen("paldies.out", "w+");
 
    fscanf(inFile, "%s", name);  //  chitajem simvoli do pervogo probela
    students[name[0]-97].push(name);
    //fprintf(outFile, "%s", name);
 
    while(!feof(inFile)){
        x++;
        fscanf(inFile, "%s", name);
        //fprintf(stdout, "Name: %s\n", name);
        students[name[0]-97].push(name);
    }
 
 
    //cout << students.end() << endl;
    if(!x){
        fprintf(outFile, "%s ","nothing");
        cout << "nothing";
    }
 
    else {
        for(int i = 0;i < 26;i++) {
            for(students[i].start();!students[i].end();students[i].next())
            {
                //students[i].pop(name);
 
                //cout << name << " ";
                cout << students[i].current->name << " ";
                fprintf(outFile, "%s ", students[i].current->name);
            }
        }
    }
    // Close files
    fclose(inFile);
    fclose(outFile);
    return 0;
}
Само задание: Есть студенты, есть большое количество карточек, на которых написаны названия мест, куда их нужно разослать. Их нужно отсортировать по местам, куда они будут отправлены.
Вопрос в том, как большое кол-во карточек отсортировать по местам проживания? Было предложено сначала отсортировать все карточки по первой букве названия места проживания. Затем будет легче отсортировать по самим местам проживания. Была предложена следующая процедура для первого этапа:

1)Каждой букве латинского алфавита - по одному студенту (нужны 26 студентов)
2)Карточки должны лежать на движущейся ленте или ее аналоге, вдоль которой стоят студенты, которые занимаются сортировкой карточек.
3)Каждый студент берет с ленты предназначенную ему карточку, т.е. карточку, адрес места жительства которой начинается с буквы, которая у конкретного студента. Все большие буквы будут считаться за маленькие.
4)Студент взятые карточки по порядку кладет в одну стопку
5)Потом, когда все карточки на ленте закончатся, студенты берут по одной карточке из своей стопки и кладут на движущуюся ленту, чтобы отправить ее на следующий этап сортировки.
6)Студенты кладут карточки по алфавитному порядку (т.е. сначала все свои карточки кладет студент с буквой "а", потом следующие по алфавиту до "z"

Написать программу симуляции этого процесса.

Запрограммировать результаты работы первого этапа. На вводе - файл, который содержит места проживания (одно слово длиной [1..255], только маленькие буквы латинского алфавита [a...z]. Места проживания отделены одним или более чем одним пробелом.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.04.2013, 17:14     Где в коде ошибка(-и)? Компилируется, но выкидывает "name.exe has stopped working"
Посмотрите здесь:

Ошибка: "stack.exe has stopped working" - C++
прошу помогите #include&lt;iostream&gt; using namespace std; struct node{ int data; struct node *nextptr; };

"has stopped working" - зависает после цикла - C++
#include &lt;iostream&gt; using namespace std; main() { cout &lt;&lt; &quot;Enter sentence : &quot;; FILE * fo; fo =...

.exe has stopped working (программа с массивом) - C++
Доброго времени суток . Возникла проблема - программа (код ниже) при запуске выдает .exe has stopped working A problem caused the program...

Где ошибка невозможно преобразовать указатель "this" из "const pers" в "pers &" при выводе объектов через cout - C++
Добрый день! Переписал код из книг Лафоре, создание мультимножества из собственных объектов- справочник телефонный, с именем и фамилией. ...

Не компилируется программа. Ошибка: "Не удается открыть включение" - C++
Доброго времени суток, ув. форумчане! Нашел сорсы одной программы для редактирования колизий и эффектов на картах. Сорсы написаны на...

Не работают проекты. Ошибка "Tracker.exe is missing" - C++
в vs 2012 все проекты не работают из-за ошибки (Ошибка 1 error : Required file &quot;tracker.exe&quot; is missing. C:\Program Files...

Вылетает ошибка ".exe has triggered a breakpoint" Не понимаю, что не так - C++
#include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int main() { int pSourceData = 10; int nSourceDataLen =...

Ошибка в коде: "использована неиницилизирована локальная переменная" - C++
решал задачку где нужно создать функию котора выводит среднее значение введеных чисел масива. код написал но не компилируется, выдает...

Ошибка в коде "no match for 'operator[]' (operand types are 'Student' and 'int')" - C++
Помогите пожалуйста разобраться, в чём проблема? Весь код: #include &quot;windows.h&quot; #include &lt;stdio.h&gt; #include &lt;string.h&gt; #include...

Ошибка при запуске "Example.exe не является внутренней или внешней командой" - C++
когда запускаю консольное приложение win32 появляется командная строка, и там пишет: &quot;&quot;C:\Users\Denis\documents\visual studio...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
13052 / 7315 / 814
Регистрация: 27.09.2012
Сообщений: 18,052
Записей в блоге: 3
Завершенные тесты: 1
30.04.2013, 18:42     Где в коде ошибка(-и)? Компилируется, но выкидывает "name.exe has stopped working" #2
У меня отработало без ошибок.
Где лежит фаил paldies.in?
w0nder
0 / 0 / 0
Регистрация: 23.11.2012
Сообщений: 131
30.04.2013, 19:12  [ТС]     Где в коде ошибка(-и)? Компилируется, но выкидывает "name.exe has stopped working" #3
Croessmah, в той же папке, что и файл. Ну, у меня тоже без ошибок, но она не работает.
Out файл при этом создается, но пустой
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru