Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Ismet
1 / 1 / 0
Регистрация: 14.03.2016
Сообщений: 45
1

Программа компилируется но не работает

20.03.2016, 16:15. Просмотров 901. Ответов 15
Метки нет (Все метки)

После ввода программа не выдает нечего и закрывается
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <stdio.h>
#include <cstring>
using namespace std;
int main(){
int el,i,p;
char mas[28]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','.',' '};
char qebul[500];
gets(qebul);
el=strlen(qebul);
char yaz[el];
while(qebul[i]==0){
    while(qebul[i]!=mas[p]){p++;}
    if(p>=28){p=30-p;}
    p=p+2;
    yaz[i]=mas[p];
    i++;
 
};
puts(yaz);
return 0;
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2016, 16:15
Ответы с готовыми решениями:

Программа компилируется но не работает
#include &lt;conio.h&gt; #include&lt;windows.h&gt; #include&lt;iostream&gt; #include&lt;time.h&gt; using namespace std;...

Почему программа компилируется но не работает?
Заявки (телевизоры) поступают на проверку к 3 пунктам контроля . Если все контроллеры заняты ,...

Почему Visual Studio показывает ошибку, но программа компилируется и работает?
template &lt;typename T&gt; struct MyType { friend std::ostream &amp;operator&lt;&lt;(std::ostream &amp;out, const...

Программа компилируется в Borland 6.0 но не компилируется в Visual Studio 2008
Ета програма компилируетса в борланде 6.0 но не компилируетса в Visualstudio 2008 и в борланде 10-м...

Первая программа. Код не компилируется и не запускается программа.
Первая программа, первая ошибка Здравствуйте! Решил учить С++. Скачал книгу Programming:...

15
meJevin
158 / 150 / 92
Регистрация: 18.11.2015
Сообщений: 677
Завершенные тесты: 1
20.03.2016, 16:34 2
Перед return 0; в main() напиши system("PAUSE"); ИЛИ, включив библиотеку <conio.h> _getch();

Добавлено через 1 минуту
И вообще, как у тебя она работает, если ты в размер статического массива написал не константу, а просто int, который можно изменять? Что за магия?
1
Ismet
1 / 1 / 0
Регистрация: 14.03.2016
Сообщений: 45
20.03.2016, 16:39  [ТС] 3
system("PAUSE"); написал но опять вышла ошибка
"system" was not declared in this scope
а как указать констант??и как библиотеку подключить??можете мне код написать если можно??
0
zss
Модератор
Эксперт С++
8764 / 7662 / 4738
Регистрация: 18.12.2011
Сообщений: 20,393
Завершенные тесты: 1
20.03.2016, 19:23 4
Цитата Сообщение от Ismet Посмотреть сообщение
"system" was not declared in this scope
C++
1
#include <cstdlib>
0
20.03.2016, 19:23
Son1Q
11 / 11 / 13
Регистрация: 23.05.2015
Сообщений: 50
Завершенные тесты: 1
20.03.2016, 19:24 5
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
#include <iostream>
#include <stdio.h>
#include <cstring>
using namespace std;
int main() 
{
    setlocale(LC_ALL, "Russian");
    int  el, i=0, p=0;
    char mas[] = { 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','.',' ' };
    char qebul[500];
    gets_s(qebul);
    el = strlen(qebul);
    char *yaz = new char[el];
    while (qebul[i] == 0) 
    {
        while (qebul[i] != mas[p]) 
        { 
            p++; 
        }
        if (p >= 28) 
        { 
            p = 30 - p; 
        }
        p = p + 2;
        yaz[i] = mas[p];
        i++;
 
    };
    puts(yaz);
    system("pause");
    return 0;
}
0
nd2
3099 / 2593 / 1134
Регистрация: 29.01.2016
Сообщений: 8,690
20.03.2016, 19:28 6
Цитата Сообщение от meJevin Посмотреть сообщение
Что за магия?
Нестандартное расширение компиляторов gcc (mingw).
0
Ismet
1 / 1 / 0
Регистрация: 14.03.2016
Сообщений: 45
20.03.2016, 19:34  [ТС] 7
не работает у меня ошибка в гетс и систем пауза
0
nd2
3099 / 2593 / 1134
Регистрация: 29.01.2016
Сообщений: 8,690
20.03.2016, 19:37 8
Цитата Сообщение от Ismet Посмотреть сообщение
ошибка в гетс и систем пауза
gets_s() не используй - это нестандарт.
Для system("pause"); сделай:
Цитата Сообщение от zss Посмотреть сообщение
C++
1
#include <cstdlib>
1
zss
Модератор
Эксперт С++
8764 / 7662 / 4738
Регистрация: 18.12.2011
Сообщений: 20,393
Завершенные тесты: 1
20.03.2016, 19:40 9
Лучший ответ Сообщение было отмечено Ismet как решение

Решение

В целом, смею предположить, что Вам нужен такой код
(а на будущее - формулируйте условие решаемой задачи):
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
#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std;
int main()
{
    char mas[]="abcdefghijklmnopqrstuvwxyz., ";
    int Lmas=strlen(mas);
    char qebul[500];
    fgets(qebul,500,stdin);
    int Lqebil=strlen(qebul);
    char yaz[500]={0};// обнулили весь массив
    int j=0;
    for(int i=0;i<Lqebil;i++)
    {
        int p=0;
        for( ; p<Lmas;p++)
            if(qebul[i]==mas[p])
                break;
        //if(p>Lmas){p=30-p;} не пойму, что Вы тут пытались сотворить
        //p=p+2;
        if(p!=Lmas) // буква найдена (переписываем ее в результат)
            yaz[j++]=mas[p];
    }
    puts(yaz);
    system("pause");
    return 0;
}
2
Ismet
1 / 1 / 0
Регистрация: 14.03.2016
Сообщений: 45
20.03.2016, 19:47  [ТС] 10
спасибо большое но он тоже почему то не работает

Добавлено через 3 минуты
спасибо за помощь но у меня программа опять нее работает не знаю почему
Нужно изменить все буквы в тексте заменив их на 2 позиций от самого на алфавите.мне дали набор каких то символов нужно написать текст в программу и там будет виден настоящий текст.

Добавлено через 44 секунды
спасибо за помощь но у меня программа опять нее работает не знаю почему
Нужно изменить все буквы в тексте заменив их на 2 позиций от самого на алфавите.мне дали набор каких то символов нужно написать текст в программу и там будет виден настоящий текст.
0
zss
Модератор
Эксперт С++
8764 / 7662 / 4738
Регистрация: 18.12.2011
Сообщений: 20,393
Завершенные тесты: 1
20.03.2016, 19:55 11
Лучший ответ Сообщение было отмечено Ismet как решение

Решение

Ну, предположим, что Вы пытались сказать
"Заменить букву из списка на букву из того же списка, находящуюся на 2 символа правее"
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
#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std;
int main()
{
    char mas[]="abcdefghijklmnopqrstuvwxyz., ";
    int Lmas=strlen(mas);
    char qebul[500];
    fgets(qebul,500,stdin);
    int Lqebil=strlen(qebul);
    char yaz[500]={0};// обнулили весь массив
    for(int i=0;i<Lqebil;i++)
    {
        int p=0;
        for( ; p<Lmas;p++)
            if(qebul[i]==mas[p])
                break;
        p+=2; // передвигаемся на 2 позиции вправо
        if(p<Lmas) // 
            yaz[i]=mas[p]; //буква есть (переписываем ее в результат)
        else
            yaz[i]=qebul[i]; // буквы нет (оставляем старую)
    }
    puts(yaz);
    system("pause");
    return 0;
}
1
Ismet
1 / 1 / 0
Регистрация: 14.03.2016
Сообщений: 45
20.03.2016, 20:00  [ТС] 12
'stdin' was not declared in this skope
fgets и puts
0
nd2
3099 / 2593 / 1134
Регистрация: 29.01.2016
Сообщений: 8,690
20.03.2016, 20:08 13
Добавь:
C++
1
#include <cstdio>
0
Ismet
1 / 1 / 0
Регистрация: 14.03.2016
Сообщений: 45
20.03.2016, 20:12  [ТС] 14
можете для меня написать эту программу?Задача такая вводим текст в программу она берет каждую букву в тесте находит ее место на алфавите и изменяет эту букву на 2 позиции на право.в тексте есть пробелы и точки.
0
zss
Модератор
Эксперт С++
8764 / 7662 / 4738
Регистрация: 18.12.2011
Сообщений: 20,393
Завершенные тесты: 1
20.03.2016, 20:25 15
Лучший ответ Сообщение было отмечено Ismet как решение

Решение

Цитата Сообщение от Ismet Посмотреть сообщение
Задача такая
Если Вы считаете, что мой пример в сообщении №11 решает не эту задачу, то докажите.
Кстати, если это надо сделать со ВСЕЙ кодовой таблицей, то массив с алфавитом не нужен.
C++
1
2
3
4
5
6
7
8
9
10
11
   unsigned char qebul[500];
    unsigned char yaz[500]={0};// обнулили весь массив
 
....
    for(int i=0;i<Lqebil;i++)
    {
        unsigned int t=qebul[i]+2;
        if(t>255)
           t=255;
         yaz[i]=t;
    }
1
Ismet
1 / 1 / 0
Регистрация: 14.03.2016
Сообщений: 45
20.03.2016, 20:29  [ТС] 16
это не я так считаю это мой компилятор пишет
0
20.03.2016, 20:29
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.03.2016, 20:29

Не компилируется программа
#include &quot;StdAfx.h&quot; #include &quot;Line.h&quot; Line::Line(Point* start, Point* end) { this-&gt;Start =...

Не компилируется программа
Скпомпилируйте, у меня одной оно не так как надо работает??? # include &lt;iostream&gt; # include...

Программа не компилируется
Доброго всем времени суток! Не могу скомпилировать программу. У меня задача написать...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

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