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

Подскажите решение - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Считывание данных одного приложения другим http://www.cyberforum.ru/cpp-beginners/thread58070.html
Здравствуйте, подскажите пожалуйста. Передо мной стоит следующая задача. У меня есть основное приложение на С Builder, которое выполняется постоянно. В процессе её выполнения формируется группа значений, которые быстро меняются. Так же у меня есть 3 пользовательских приложения, которые должны запускаются по мере необходимости и должны считывать данные с основного приложения. Как это можно...
C++ Перевести на С. Очень нужно перевести на СИ procedure TForm1.Button1Click(Sender: TObject); var a,b,x,i:integer; begin a:=strtoint(Edit1.text); b:=strtoint(Edit2.text); x:=0; for i:=a to b do begin inc(x); http://www.cyberforum.ru/cpp-beginners/thread58067.html
Программа календарь C++
Помогите пожалуйста написать программу на С, которая выводит на экран календарь на любой год.
передать массив структуры в класс C++
Есть класс, надо, что бы в конструктор передавался массив стуктуры, что бы потом в классе взаимодействовать с этой структурой. То ест это выглядет так: в main() мы создаём массив структур, создавая объект класса мы передаём количество эллементов массива и саму структура и вопрос: что надо написать в конструкторе, что бы потмо в этом классе можно было нормально работать с этой структурой? Думал...
C++ Генератор паролей http://www.cyberforum.ru/cpp-beginners/thread58022.html
Привет юзерам cyberforum'а. Требуется следующее: Написать программу - генератор паролей. Программа должна выполнять следующие действия: a] Ввод идентификатора пользователя с клавиатуры. Данный идентификатор представляет собой последовательность символов a1,a2,...,an , где N – количество символов идентификатора (может быть любым), ai - i – ый символ идентификатора пользователя. b]...
C++ Граф - WxDev C++ Добрый вечер. Вот код графа, Писал сам. По логике вроде всё должно как бы работать. Но Выкидывает пару ошибок насчет нехватки {; Может кто нибудь даст совет какой нибудь? #include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv) { struct Mezgl подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
22.10.2009, 16:25     Подскажите решение
Вот то что у меня вышло, для ускорения работы и облегчения работы
ввёл пару дополнительных массивов, по условию это не запрещалось)))

Я постарался всё прокоментить, и давать понятные названия функциям,
у меня на машине прога компилится и работает без проблем
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
#include <windows.h>
#include <stdio.h>
 
//Наш 2-мерный массив
char ** chMass;
//Вспомогательные массивы с временем сарта и 
//временем прохождения дистанции в секундах, 
//(предполагается что спортсмены участвуют в лыжной гонке менее
//1-го дня, что думаю вполне логично!)
int * iStartTime = (int *)malloc(sizeof(int));
int * iResultTime= (int *)malloc(sizeof(int));
 
//Массив с последовательностью индексов для вывода
int * iSortIndex = (int *)malloc(sizeof(int));
 
char * AddSportsmanRes(char * str);
int GetTimeInSeconds(char * str);
 
void main()
{
    printf("\tSki results protokol\r\n");
    printf("Enter number of sportsmans\t");
    int num;scanf("%d",&num);getchar();
    chMass = new char * [num];
    iStartTime  = (int *)realloc(iStartTime, sizeof(int)*num);
    iResultTime = (int *)realloc(iResultTime,sizeof(int)*num);
    iSortIndex  = (int *)realloc(iSortIndex,sizeof(int)*num);
 
    printf("Enter family of sportsmen and his start//finish time\r\n");
    printf("in next format Family-hh:mm:ss-hh:mm:ss\r\n");
    for(int i = 0; i < num; i++)
    {
        printf("Add %d sportsman :\r\n\t",i + 1);
        chMass[i] = AddSportsmanRes(chMass[i]);
        iResultTime[i] = GetTimeInSeconds(strrchr(chMass[i],'-'));
        iStartTime[i]  = GetTimeInSeconds(strrchr(chMass[i],'-'));
 
        //В итоге в chMass[i] останется только фамилия участника
        //А в массивах iResultTime и iStartTime данной фамилии
        //будет соответствовать време на дистанции и старта 
        //в числовом формате
//      printf("Start  time in Sec : %d\r\n",iStartTime[i]);
 
        //Тут сразу вычисляем время спортсмена 
        //затраченное на прохождения дистанции
//      printf("Result time in Sec : %d\r\n",
            (iResultTime[i] -= iStartTime[i])/*)*/;
 
//      printf("Family : %s\r\n",chMass[i]);
        iSortIndex[i] = i;
    }
    //Сортировка методом пузырька
    for(int j = 0; j < num - 1; j++)
    {
        for(i = j + 1; i < num; i++)
        {
            //a < b
            if(iResultTime[iSortIndex[i]] < iResultTime[iSortIndex[j]])
            {
                //a += b
                iSortIndex[i] += iSortIndex[j];
                //b = a - b
                iSortIndex[j] = iSortIndex[i] - iSortIndex[j];
                //a = a - b
                iSortIndex[i] = iSortIndex[i] - iSortIndex[j];
            }
        }
//      printf("iSortIndex[%d] - %d\r\n",j,iSortIndex[j]);
    }
    printf("\tFinish protokol :\r\n");
    printf("[Format : Place Family TimeOnDistance]\r\n");
    for(i = 0; i < num; i++)
        printf
        (
            "\t%d\t%s\t%d\r\n",
            i + 1,
            chMass[iSortIndex[i]],
            iResultTime[iSortIndex[i]]
        );
 
    //Чистим память
    for(i = 0; i < num; i++)
        free(chMass[i]);
    iStartTime  = (int *)realloc(iStartTime, sizeof(int));
    iResultTime = (int *)realloc(iResultTime,sizeof(int));
    iSortIndex  = (int *)realloc(iSortIndex,sizeof(int));
 
    printf("Press NUM1 to enter new distance protokol\r\n");
    scanf("%d",&i);getchar();
    if(i == 1)
        main();
    free(iStartTime);
    free(iResultTime);
    free(iSortIndex);
}
 
char * AddSportsmanRes(char * str)
{
    int i = 0;
    str = (char *)malloc(sizeof(char));
    while((str[i] = getchar()) != '\n')
    {
        i++;
        str = (char *)realloc(str,sizeof(char)*(i + 1));
    }
    str[i] = '\0';
    return str;
}
 
int GetTimeInSeconds(char * str)
{
    int iSec = 0;
    char * chBuf = strrchr(str,':');
    if(chBuf)
    {
        iSec += atoi(chBuf + 1);
        str[strlen(str) - strlen(chBuf)] = '\0';
        chBuf = strrchr(str,':');
        
        if(chBuf)
            iSec += atoi(chBuf + 1)*60;
        str[strlen(str) - strlen(chBuf)] = '\0';
        chBuf = str;
        if(chBuf[0] == '-')
            chBuf++;
        iSec += atoi(chBuf)*3600;
        str[0] = '\0';
    }
    return iSec;
}
Миниатюры
Подскажите решение  
 
Текущее время: 00:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru