Форум программистов, компьютерный форум, киберфорум
Наши страницы

Структуры. исправьте пожалуйста... - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Описать структурированный тип http://www.cyberforum.ru/cpp-beginners/thread395788.html
Описать структурированный тип полями которого будут данные о 5 предметов. Описание 3 структур переменные и определить в какой из предметов средний балл больше. Помогите сделать прогу
C++ Написать программу,которая подсчитывает сколько раз заданный символ входит в данную строку текста Дан текст.Написать программу,которая подсчитывает сколько раз заданный символ входит в данную строку текста. http://www.cyberforum.ru/cpp-beginners/thread395784.html
C++ Заполнение матрицы целыми числами с помощью генератора случайных чисел
1.Матрицу 8*8 заполнить целыми числами с помощью генератора случайных чисел. 2.Найти определитель. 3.Найти min и max элементы матрицы. 4.Определить сумму элементов над главной диагональю
C++ Вывод массива по спирали. Ошибка исполнения.
Дан квадратный массив задаваемой размерности, нужно вывести в ряд его элементы змейкой начиная с элемента последней строки последнего столбца и заканчивая элементом посередине массива, идти нужно...
C++ Внести единую упорядоченность в последовательность http://www.cyberforum.ru/cpp-beginners/thread395761.html
Дано действительные числа c1, . . . cp, d1 . . .dq(c1≤ c2. . . ≤cp , d1≤ d2. . . ≤dq), внести единую упорядоченность в c1, . . . cp, d1 . . .dq, получив f1,f2, . . . fp+q , такие что f1 ≤f2≤ . . ....
C++ Блок схема к коду Подскажите пожалуйста как будет выглядеть блок схема к имеющемуся коду: #include <fstream> #include <string> using namespace std; int main(void) { fstream fin("in.txt", fstream::in); ... подробнее

Показать сообщение отдельно
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
30.11.2011, 19:51
Просто огромное количество недочетов. Начиная с некорректной работы с памятью.
Попробуйте создавать функцию на каждый чих. Например:
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
#include <iostream>
#include <cstring>
 
struct Note {
  char *name;
  size_t phone;
  size_t birthday[3];
};
 
Note *newNote(const char *name, size_t phone, size_t birthYear,
  size_t birthMonth, size_t birthDay) {
  Note *note = new Note;
  note->name = strcpy(new char[strlen(name) + 1], name);
  note->phone = phone;
  note->birthday[0] = birthYear;
  note->birthday[1] = birthMonth;
  note->birthday[2] = birthDay;
  return note;
}
 
void deleteNote(Note *note) {
  delete [] note->name;
  delete note;
}
 
void printNote(Note *note) {
  std::cout << "Name: " << note->name << "; phone: " << note->phone <<
    "; birthday: " << note->birthday[2] << "/" << note->birthday[1] <<
    "/" << note->birthday[0] << "." << std::endl;
}
 
void insertSorted(Note *note, Note **notes, size_t size) {
  size_t index = 0;
  for (; index < size; ++index)
    if (strcmp(note->name, notes[index]->name) < 0)
      break;
  for (size_t i = size; i > index; --i)
    notes[i] = notes[i - 1];
  notes[index] = note;
}
 
void printNotes(Note **notes, size_t size) {
  for (size_t i = 0; i < size; ++i)
    printNote(notes[i]);
}
 
void printNotesWithMonth(Note **notes, size_t size, size_t month) {
  for (size_t i = 0; i < size; ++i)
    if (notes[i]->birthday[1] == month)
      printNote(notes[i]);
}
 
int main(int argc, char *argv[]) {
  size_t capacity = 8;
  Note **notes = new Note*[capacity];
  size_t size = 0;
  
  // вводить лень, поэтому захардкожено
  insertSorted(newNote("Ivan Ivanov", 3144515, 1975, 11, 1), notes, size++);
  insertSorted(newNote("Sergey Petrov", 3144517, 1978, 7, 21), notes, size++);
  insertSorted(newNote("Petr Ivanov", 3144516, 1976, 7, 5), notes, size++);
  insertSorted(newNote("Ilya Sidorov", 3144518, 1974, 3, 22), notes, size++);
  insertSorted(newNote("Alexey Sergeev", 3144519, 1978, 2, 13), notes, size++);
  insertSorted(newNote("Andrey Kuznetsov", 3144520, 1976, 4, 15), notes, size++);
  insertSorted(newNote("Sergey Alexeev", 3144521, 1973, 1, 9), notes, size++);
  insertSorted(newNote("Anatoliy Morgin", 3144522, 1971, 1, 7), notes, size++);
  
  printNotes(notes, size);
 
  size_t month = 1;
 
  std::cout << std::endl << "Notes with month = " << month << ":" << std::endl;
 
  printNotesWithMonth(notes, size, 1);
  
  for (size_t i = 0; i < size; ++i)
    deleteNote(notes[i]);
  delete [] notes;
  return 0;
}
И повнимательней с динамической памятью. Её освобождать нужно.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.