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

Просьба прокомментировать код(функция поиска в массиве структур) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Нужно найти слова которые встречаются в буквы "a" "z" http://www.cyberforum.ru/cpp-beginners/thread1755433.html
Даны две буквы "a" "z" и текст, нужно найти и вывести те слова в которых встречаются две эти буквы вот мой вариант но он не работает #include <iostream> #include <string> using namespace std; int main(){ int i = 0, n = 0,k; string T,slv;
C++ Разбить массив по десяткам Есть одномерный массив из простых чисел. Можно ли числа этого массива разделить по десяткам? Т.е. 1,2,3,4 и т.д. - первый десяток, 11,12,13,14 и т.д. - второй. Длина массива задается с клавиатуры. http://www.cyberforum.ru/cpp-beginners/thread1755426.html
Кратчайший путь до определённой вершины графа C++
Добрый день! Дано такое задание по динамическому программированию - найти кратчайший путь от вершины А до вершины В (смотреть прикреплённую картинку, красным веделенны названия вершин, чёрным - вес). Использую алгоритм Форда-Беллмана. В программе не используются ни векторы, ни списки. void GraphType<Type>::bellman_ford(Type src){ initDist(); initPrev(); dist = 0; for(int...
C++ отладчик mpi кластера в VS 2013
делал по инструкции https://msdn.microsoft.com/ru-ru/library/ee441265.aspx#BKMK_debugMany до момента, когда сказано "В группе Загружаемый отладчик выберите элемент Отладчик MPI-кластера." Однако у меня там нет такого пункта. http://c2n.me/3yRyC9c установлено Microsoft HPC Pack 2008 SDK Microsoft MPI Microsoft MPI SDK http://c2n.me/3yRyOs4
C++ Не работает команда http://www.cyberforum.ru/cpp-beginners/thread1755417.html
Вроде бы всё правильно сделал, но не работает команда "Получение матрицы" Вот код Файл: Spisok.h #pragma once class Spisok { int size1; int size2; int **mas;
C++ Нужны комментарии к программе Прошу помогите понять, что происходит в каждой строке этих двух программ? То есть помогите к каждой строке написать комментарии пожалуйста?? 1 программа: #include <iostream> #include <cstdlib> #include <ctime> using namespace std; #define n 3 int main() { подробнее

Показать сообщение отдельно
iamnewbee
0 / 0 / 0
Регистрация: 27.05.2016
Сообщений: 3
05.06.2016, 20:13     Просьба прокомментировать код(функция поиска в массиве структур)
Ребят, друг помог - скинул код, но возможности прокомментировать его у него уже нет, может вы поможете
задание:дан файл f, компонентами которого являются целые числа. Каждая дата - это число, месяц и год. Найти: а) год с наименьшим номером. б) все весенние даты. в) самую позднюю дату
Я отметил строки, которые прошу прокомментировать. Очень надеюсь на вашу помощь
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
#include <iostream>
#include <fstream>
 
using namespace std;
 
int Power(int, int);
int strToInt(char*);
char **dataInput(int&);
void dateTransform(char**, int**, int);
void dateOutput(int**, int);
void dateFullOutput(int**, int);
void dateSwap(int*, int*);
int datecmp(int**, int, int);
void dateSort(int**, int);
void dateDelete(int**, int);
 
void main() {
    setlocale(LC_ALL, "Russian");
 
    int n = 1;
    char **date = dataInput(n);
    int **mass = new int *[n];
    for (int i(0); i < n; i++) mass[i] = new int[3];
    dateTransform(date, mass, n);
 
    cout << "Компоненты файла: " << endl;
    dateFullOutput(mass, n);
    cout << endl;
 
    int yearIndex = 0, min = mass[0][2];
    for (int i(1); i < n; i++) if (min > mass[i][2]) min = mass[yearIndex = i][2];
    cout << "Год с наименьшим номером: " << mass[yearIndex][2] << endl << endl;
 
    cout << "Все весенние даты: " << endl;
    for (int i(0); i < n; i++) if (mass[i][1] >= 3 && mass[i][1] <= 5) dateOutput(mass, i);
    cout << endl;
 
    dateSort(mass, n);
    cout << "Самая поздняя дата: ";
    dateOutput(mass, n - 1);
 
    delete[] date;
    dateDelete(mass, n);
    system("pause");
}
 
int Power(int base, int pow) {
    int res = 1;
    for (int i(0); i < pow; i++) res *= base;
    return res;
}
 
int strToInt(char *str) {
    int n = strlen(str), res = 0;
    for (int i = 0; i < n; i++) res += (char(str[i]) - 48) * int(Power(10, n - i - 1)); //!
    return res;
}
 
char **dataInput(int &n) {
    char c, *file = "d.txt";
    bool flag = false;                                                              //!
    ifstream fin(file);                                                             //!
 
    if (!fin.is_open()) {                                                           //!
        cout << "К сожaлению файл "" << file << "" не был найден!!" << endl;
        system("pause");
        exit(0);
    }
 
    while (!fin.eof()) {                                                            //!
        fin.get(c);                                                                 //!
        if (fin.eof()) break;                                                       //!
        if (c == ' ' || c == '\n' || c == '\t') flag = true;                        //!
        if (flag && c != ' ' && c != '\n' && c != '\t') { n++; flag = false; }      //!
    }
 
    if (!(n - 1)) {
        cout << "Файл пуст!" << endl;
        system("pause");
        exit(0);
    }
    char **date = new char*[n];
 
    fin.clear();
    fin.seekg(0, ios::beg);
    for (int i(0); i < n; i++) fin >> (date[i] = new char[8]);
    fin.close();
 
    return date;
}
 
void dateTransform(char **date, int **mass, int n) {
    for (int i(0); i < n; i++) {
        for (int j(0); j < 3; j++) {
            char *temp = new char[5];
            if (j == 0) { for (int k(0); k < 2; k++) temp[k] = date[i][k]; temp[2] = '\0'; }        //!
            if (j == 1) { for (int k(2); k < 4; k++) temp[k - 2] = date[i][k]; temp[2] = '\0'; }    //!
            if (j == 2) { for (int k(4); k < 8; k++) temp[k - 4] = date[i][k]; temp[4] = '\0'; }    //!
            mass[i][j] = strToInt(temp);
            delete[] temp;
        }
    }
}
 
void dateOutput(int **mass, int i) {
    for (int j(0); j < 3; j++) cout << (mass[i][j] < 10 ? "0" : "") << mass[i][j] << (j == 2 ? ";" : "."); //!
    cout << endl;
}
 
void dateFullOutput(int **mass, int n) {
    for (int i(0); i < n; i++) {
        for (int j(0); j < 3; j++)
            cout << (mass[i][j] < 10 ? "0" : "") << mass[i][j] << (j == 2 ? ";" : ".");             //!
        cout << endl;
    }
}
 
void dateSwap(int *arr1, int *arr2) {
    int *temp = new int[3];
    for (int i(0); i < 3; i++) {
        temp[i] = arr1[i];
        arr1[i] = arr2[i];
        arr2[i] = temp[i];
    }
    delete[] temp;
}
 
int datecmp(int **arr1, int i, int index) {
    return (arr1[i][index] > arr1[i + 1][index]) ? 1 : (arr1[i][index] == arr1[i + 1][index]) ? datecmp(arr1, i, index - 1) : 0;//!
}
 
void dateSort(int **mass, int n) {
    for (int i = n - 1; i > 0; i--)
        for (int j = 0; j < i; j++)
            if (datecmp(mass, j, 2)) dateSwap(mass[j], mass[j + 1]);    //!
}
 
void dateDelete(int **mass, int n) {
    for (int i = 0; i < n; i++) delete[] mass[i];
    delete[] mass;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru