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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Predvestnik
7 / 6 / 2
Регистрация: 09.10.2010
Сообщений: 192
#1

Найти ошибку - C++

16.01.2011, 13:38. Просмотров 453. Ответов 11
Метки нет (Все метки)

При компиляции ошибок не выдаёт, но когда запускаю программу она вылетает

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
#include "stdafx.h"
#include <conio.h>
#include <math.h>
#include <string.h>
 
void main()
{
 
    int i;
    char *st;
    printf("Vvedite stroku simvolov:\n");
    scanf("%s",st);
    printf("\nIshodnaja stroka:\n%s\n",st);
    for(i=0;i<strlen(st)-1;i++);
    {
        if ((*(st+i)=='A')&&(*(st+i+1)=='B'))
        {
            st[i]='C';
        }
    
    }
    printf("\nNovaja stroka:\n%s\n",st);
    getch();
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2011, 13:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти ошибку (C++):

Найти ошибку в программе: в visual studio выдает ошибку - C++
#include &lt;math.h&gt; #include &lt;conio.h&gt; #include &lt;iostream&gt; using namespace std; int main() { double x, E, ypred, y, S; ...

Найти слова, повторяющиеся более одного раза, не могу найти ошибку - C++
#include &lt;iostream&gt; using namespace std; void obr1(char **s, char **mas, int n, int m) { int i; int k; char *tm; for(i...

Помогите найти ошибку: По двум сторонам и углу найти все остальное - C++
Доброго времени суток. В универе дали задание написать программу &quot;По двум сторонам и углу между ними в треугольнике АВС найти два остальных...

Найти сумму первых n-четных натуральных чисел (найти ошибку) - C++
Нужно найти сумму первых n-четных натуральных чисел. Ошибка вылетает на 13 строке, должно быть я не правильно код составил, алгоритм не тот...

Найти сумму целых отрицательных чисел удовлетворяющих условию (найти и исправить ошибку в коде) - C++
#include&lt;iostream&gt; #include&lt;math.h&gt; using namespace std; int main() { int y = 0; for(int i = -21; i &lt; -99; i+=3) ...

Массивы. Посчитать количество положительных, найти минимальное, удалить строку с минимальным (Не могу найти ошибку) - C++
// Заданы матрицы X(8;4),Y(5;5),Z(6;9). // Для каждой из матриц определить строку, в которой находится наименьшее // количество...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
16.01.2011, 13:40 #2
Цитата Сообщение от Predvestnik Посмотреть сообщение
scanf("%s",st);
C
1
scanf("%s",&st);
0
vippi07
26 / 23 / 1
Регистрация: 01.11.2009
Сообщений: 134
16.01.2011, 13:41 #3
а что должна делать программа?
0
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
16.01.2011, 13:48 #4
Цитата Сообщение от Predvestnik Посмотреть сообщение
char *st;
C
1
char st[256];
0
TonyKing
0 / 0 / 0
Регистрация: 16.01.2011
Сообщений: 14
16.01.2011, 13:49 #5
Ошибся)
0
Predvestnik
7 / 6 / 2
Регистрация: 09.10.2010
Сообщений: 192
16.01.2011, 13:49  [ТС] #6
MILAN всё равно тот же результат.

Программа должна заменять все пары АВ на С.
0
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
16.01.2011, 14:04 #7
Predvestnik, после for уберите ';'!!!
1
Predvestnik
7 / 6 / 2
Регистрация: 09.10.2010
Сообщений: 192
16.01.2011, 14:23  [ТС] #8
Да не заметил сначала, теперь программа запускается, но вот вопрос, как удалить из строки символ st[i+1]

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
#include "stdafx.h"
#include <conio.h>
#include <math.h>
#include <string.h>
 
void main()
{
 
    int i,k=0,t=1;
    char st[16]="";
    printf("Vvedite stroku simvolov:\n");
    scanf("%s",st);
    printf("\nIshodnaja stroka:\n%s\n",&st);
    for(i=0;i<16;i++)
    {
        if ((st[i]=='A')&&(st[i+1]=='B'))
        {
            st[i]='C';
                        
        }
    
    }
    printf("\nNovaja stroka:\n%s\n",st);
    getch();
}
0
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
16.01.2011, 14:47 #9
Predvestnik, как вариант

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
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <string.h>
 
void main()
{
 
        char st[256];
        printf("Vvedite stroku simvolov:\n");
        scanf("%s",&st);
        printf("\nIshodnaja stroka:\n%s",st);
        printf("\nResult\n");
        for(int i=0; i<strlen(st); i++)
        {
                if ((*(st+i)=='A')&& (*(st+i+1)=='B'))
                {
                        *(st+i)='C';
          printf("%c",*(st+i));
          i++;
 
                        
                }
        else
        {
                   printf("%c",*(st+i));
        }
    
        }
       getch();
}
0
Predvestnik
7 / 6 / 2
Регистрация: 09.10.2010
Сообщений: 192
16.01.2011, 14:57  [ТС] #10
Спасибо, и если не трудно напишите пожалуйста что в цикле что к чему, а то я чёто не пойму.
P.S прошу прощения за тупые вопросы, учу С второй день только.
0
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
16.01.2011, 15:07 #11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 for(int i=0; i<strlen(st); i++)
        {
                if ((*(st+i)=='A')&& (*(st+i+1)=='B')) // если втсречаются подряд AB
                {
                        *(st+i)='C'; // символ i-тый меняем на С
                  printf("%c",*(st+i)); // выводим i-тый  символ 
                  i++; // инкриментируем i (для того, что бы пропустить символ В)
                                                
                }
            else  // иначе
            {
                   printf("%c",*(st+i)); выводим i-тый символ
            }
    
        }
1
Predvestnik
7 / 6 / 2
Регистрация: 09.10.2010
Сообщений: 192
16.01.2011, 15:17  [ТС] #12
Всё так просто, а сразу и непонятно. Спасибо большое.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2011, 15:17
Привет! Вот еще темы с ответами:

Массивы. Найти среднее арифметическое элементов массива, расположенных до максимального элемента (найти ошибку в задании) - C++
Препод говорит что тут есть ошибка, но где не говорит, прошу если кото-нибуть заметит сообщите. Ввести одномерный статический массив...

В строках матрицы с отрицательным элементом на главной диагонали найти наибольший из всех элементов (найти ошибку в коде) - C++
Помогите найти ошибку! Дана действительная квадратная матрица порядка 10. В строках с отрицательным элементом на главной диагонали найти...

Задача из Златопольского: "Найти числа с известным количеством делителей". Не могу найти ошибку - C++
Здравствуйте. Задача следующая: Найти все целые числа из промежутка от a до b, у которых количество делителей равно k. К примеру я взял...

найти ошибку - C++
Помогите найти ошибку в коде,пожалуйста #include&lt;iostream.h&gt; char newline; class rast { char mesto; public: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
16.01.2011, 15:17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru