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

ошибка в программе(не могу описать в двух словах) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сравнивание 3-х чисел http://www.cyberforum.ru/cpp-beginners/thread385706.html
Как сравнить 3 числа в с++,и вывести на экран число которое из них больше,если не сложно объясните
C++ Тайна Страуструпа - std_lib_facilities.h ! Доброго времени суток. Я начал изучать чудесный язык программирования С++ по книге Принципы и практика использования C++ Страуструпа. Начитался ,что автор весьма серьезный и из этой книги можно подчеркнуть много полезного. Но сразу столкнулся с проблемой,Код автора оказался у меня неработоспособен =( : #include "../../std_lib_facilities.h" /*там было еще вот так... http://www.cyberforum.ru/cpp-beginners/thread385699.html
C++ Ошибка в синтаксисе.
Знаю, и так всех уже достали эти матрицы, и мой вопрос может быть очень глупым, но все же. Вот исходник, который я написал: #include <iostream> #include <conio.h> using namespace std; int main() { int rd1 = 0, st1 = 0, rd2 = 0, st2 = 0; char ch; // введення розширення першої матриці
Программа системный контроль за временем выполнения заданий(процессов) C++
Здравствуйте, как написать программу Организовать системный контроль за временем выполнения заданий(процессов) и службу оповещения о времени выполнения заданий, также возможность досрочного завершения задания или процесса. Т.е написать базу данных придумав имя задания, время запуска, время выполнения, + удаление или добавление. Понимаю что программа большая, поэтому прошу выложить хотя бы...
C++ Создать специфический массив http://www.cyberforum.ru/cpp-beginners/thread385686.html
Помогите пожалуйста зделать . Объявить массив целых чисел и заполнить его случайными значениями. Диапазон значений -50 - 50 Размерность массива 200 и подсчитать количество пар соседних элементов, которые имеют противоположные знаки . Алгоритм : В первой фазе выполнения программы нам необходимо будет сформировать массив случайных чисел. Перед тем как мы будем обращаться к датчику случайных...
C++ Построить последовательность Дано натуральное число n и действительное квадратную матрицу порядка n. Построить последовательность b1,...,bn нулей и единиц, в которой, bi=1 ,тогда и только тогда, когда элементы i-й строки матрицы образуют последовательность , которая растет или падает. Возникли проблемы с данной задачей . Помогите решить плиз . подробнее

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

ошибка в программе(не могу описать в двух словах) - C++

17.11.2011, 03:33. Просмотров 609. Ответов 0
Метки (Все метки)

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

прошу ответить как можно скорее - утром лабу сдавать, приблизительно через 3 часа. жду ответа, спасибо всем прочитавшим)

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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
#include <stdio.h>
#include <conio.h>
#include <Windows.h>
#include <string.h>
#include <stdlib.h>
 
#define N 256
 
int StrLen(char *Str);//нахождение длинны
int StrCmp(char *Str1,char *Str2);//сравнение строк
int StrFindPos(char *Str1,char *Str2);//нахождение номера элемента с которого вторая строка встречается в первой
int StrFindEmaunt(char *Str1,char *Str2);//нахождение количества вхождений второй строки в первую
void StrDel(char *Str1,int BeginDel,int EndDel);//удаление  из строки с BeginDel-ого элемента по EndDel-ый.
void StrIns(char *Str1,char *Str2,int Position);//включение второй строки в первую с Position-ого элемента
void Menu(int i); //попытка справится с ошибкой, которая возникает благодаря тому что старые значения элементов не очщаются ='(
 
 
void main()
{
    int i;
    while(1)
    {
        printf("1.int StrLen(char *Str);\n2.int StrCmp(char *Str1,char *Str2);\n3.int StrFindPos(char *Str1,char *Str2);\n4.int StrFindEmaunt(char *Str1,char *Str2);\n5.void StrDel(char *Str1,int BeginDel,int EndDel);\n6.void StrIns(char *Str1,char *Str2,int Position);\n");
        i=getch();
        i-=48;
        system("cls");
        Menu(i);
        getch();
        system("cls");
    }
 
}
void Menu(int i)
{
    int j,k;
    char *Str1,*Str2;
    Str1=(char*)malloc(N*sizeof(char));
    Str2=(char*)malloc(N*sizeof(char));
    switch(i)
    {
        case 1:
            gets(Str1);
            printf("return: %i",StrLen(Str1));
            break;
        case 2:
            gets(Str1);
            gets(Str2);
            printf("return: %i",StrCmp(Str1,Str2));
            break;
        case 3:
            gets(Str1);
            gets(Str2);
            printf("return: %i",StrFindPos(Str1,Str2));
            break;
        case 4:
            gets(Str1);
            gets(Str2);
            printf("return: %i",StrFindEmaunt(Str1,Str2));
            break;
        case 5:
            gets(Str1);
            scanf("%i%i",&j,&k);
            StrDel(Str1,j,k);
            puts("result string: ");
            puts(Str1);
            break;
        case 6:
            gets(Str1);
            gets(Str2);
            scanf("%i",&j);
            StrIns(Str1,Str2,j);
            puts("result string: ");
            puts(Str1);
            break;
        case -21:
            return;
    }
    free(Str1);
    free(Str2);
}
int StrLen(char *Str)
{
    int i=0;
    while(*Str)
    {
        ++Str;
        ++i;
    }
    return i;
}
int StrCmp(char *Str1,char *Str2)
{
    while(*Str1==*Str2 && *Str1 && *Str2)
    {
        ++Str1;
        ++Str2;
    }
    if(*Str1>*Str2)return 1;
    else if(*Str1<*Str2)return -1;
    else return 0;
}
int StrFindPos(char *Str1,char *Str2)
{
    int i=0,j=0;
    char *dStr2=Str2;
    while(*Str1)
    {
        if(*dStr2==*Str1)
        {
            i=j;
            while(*dStr2==*Str1)
            {
                ++dStr2;
                ++Str1;
            }
            if(*dStr2==0)return i;
            else dStr2=Str2;
        }
        ++j;
        ++Str1;
    }
    return -1;
}
int StrFindEmaunt(char *Str1,char *Str2)
{
    int Emaunt=0,CtrlEmaunt;
    char *dStr2=Str2;
    while(*Str1)
    {
        CtrlEmaunt=Emaunt;
        if(*dStr2==*Str1)
        {
            while(*dStr2==*Str1)
            {
                if(!(*Str1))break;
                ++dStr2;
                ++Str1;
            }
            if(*dStr2==0)++Emaunt;
            dStr2=Str2;
        }
        if(Emaunt==CtrlEmaunt)++Str1;
        else CtrlEmaunt=Emaunt;
    }
    return Emaunt;
}
void StrDel(char *Str1,int BeginDel,int EndDel)
{
    char *BD=&Str1[BeginDel],*ED=&Str1[EndDel+1];
    while(*ED)
    {
        *BD++=*ED++;
    }
    *BD=0;
}
void StrIns(char *Str1,char *Str2,int Position)
{
    char Box[N],*Runner=Box,*RunnerStr1=&Str1[Position];
    while(*RunnerStr1)
        *Runner++=*RunnerStr1++;
    *Runner=0;
    RunnerStr1=&Str1[Position];
    Runner=Str2;
    while(*Runner)
        *RunnerStr1++=*Runner++;
    Runner=Box;
    while(*Runner)
        *RunnerStr1++=*Runner++;
    *RunnerStr1=0;
}
Добавлено через 32 минуты
решил не выпендриваться и бесконечный цикл внутри мейн убрал, лабу сдам, но вопрос остается открытым =)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru