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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ преобразование типов http://www.cyberforum.ru/cpp-beginners/thread852946.html
Visual c++ 2008 (win 7 64bit) консолька char VolumeNameBuffer; char FileSystemNameBuffer; unsigned long VolumeSerialNumber; SYSTEM_INFO siSysInfo; BOOL GetVolumeInformationFlag = GetVolumeInformationA( "c:\\", VolumeNameBuffer, 100, &VolumeSerialNumber, NULL, NULL, FileSystemNameBuffer, 100 );
C++ Найти минимальный элемент массива и вывести на экран его столбец и строку Помогите,как найти минимальный элемент массива и вывести на экран его столбец и строку? Срочно очень,экзамен и не могу с этим справится http://www.cyberforum.ru/cpp-beginners/thread852940.html
Указатели при наследовании классов C++
Здравствуйте , заданием было реализовать однонаправленный список как класс и затем используя механизм наследования создать базу данных на основе списка список я реализовал , добавил функции создания первого элемента и последующих , прохода всех элементов , последним шагом через наследование добавил некоторые поля но столкнулся с проблемой, что указатели на которых всё работало имеют доступ...
Делаю простой текстовый редактор. Как реализовать в нём пункт "Заменить" как в блокноте? C++
Помогите, пожалуйста. Делаю простой текстовый редактор. Как реализовать в нём пункт "Заменить" как в блокноте?
C++ Переставить столбцы в матрице по возрастанию сумм элементов в этих столбцах http://www.cyberforum.ru/cpp-beginners/thread852900.html
Задача такая. Дана разреженная матрицы общего вида(CSS или CSR). Переставить столбцы в матрице по возрастанию сумм элементов в этих столбцах.
C++ Быстрая сортировка Здравствуйте уважаемые форумчане киберфорума. Имеется проблеммка с задачкой, могли бы вы помочь мне ее решить? Имеем двумерный массив(матрицу) сформированный в соответствии с конкретной функцией, массив необходимо отсортировать по убыванию, построчно методом быстрой сортировки( дело в том, что я вообще не представляю, что это такое, а поиск по киберфоруму не дал мне понятных результатов) Может... подробнее

Показать сообщение отдельно
w0nder
0 / 0 / 0
Регистрация: 23.11.2012
Сообщений: 131

Где в коде ошибка(-и)? Компилируется, но выкидывает "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]. Места проживания отделены одним или более чем одним пробелом.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru