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

где моя ошибка? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
ilyashis
-36 / 0 / 1
Регистрация: 08.12.2011
Сообщений: 134
30.12.2011, 00:29     где моя ошибка? #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
26
27
28
29
30
31
32
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;
 
int main()
{
 int i,j;
 string s,sl,b;
 {
     cout<<"Vvedite slovo ";
     cin>> s;
     sl="";      // sl обнуляется
     s=s+' ';    // прибовляет пробел в конец строки
     for(int i=1;i<=s.size();i++)     //
        {
          while (s[i]!=' ') do             // пока s[i] не пробел
             {
                 sl=sl+s[i];            //отделяет слово от гл стр
                 i++;
  
             }
          for (int j=sl.size();j>=1;j--;)
  
            b=b+sl[j];
            b=b+' ';
            sl="";
             //if i>length(s) then i:=length(s);
  
        }
     cout<<s; 
  }
HTML5
1
2
3
4
5
6
7
8
1>------ Построение начато: проект: zahet__10, Конфигурация: Debug Win32 ------
1>  z.cpp
1>d:\labi\c\10\zahet__10\z.cpp(15): warning C4018: <=: несоответствие типов со знаком и без знака
1>d:\labi\c\10\zahet__10\z.cpp(23): error C2059: синтаксическая ошибка: for
1>d:\labi\c\10\zahet__10\z.cpp(23): warning C4552: >=: оператор не имеет результата; требуется оператор с побочным действием
1>d:\labi\c\10\zahet__10\z.cpp(23): error C2143: синтаксическая ошибка: отсутствие ";" перед ")"
1>d:\labi\c\10\zahet__10\z.cpp(33): fatal error C1075: конец файла обнаружен ранее, чем левая фигурная скобка "{" в "d:\labi\c\10\zahet__10\z.cpp(7)"
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.12.2011, 00:29     где моя ошибка?
Посмотрите здесь:

C++ подскажите пожалуйста, в чем моя ошибка?
В чем моя ошибка? C++
C++ В чем моя ошибка ?
C++ скажите пожалуйста где моя ошыбка...
в чем моя ошибка?? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dr.curse
 Аватар для dr.curse
386 / 342 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
30.12.2011, 00:30     где моя ошибка? #2
не
C++
1
for (int j=sl.size();j>=1;j--;)
а
C++
1
for (int j=sl.size();j>=1;j--)
ilyashis
-36 / 0 / 1
Регистрация: 08.12.2011
Сообщений: 134
30.12.2011, 00:32  [ТС]     где моя ошибка? #3
всё равно выходит ошибка синтактики For
dr.curse
 Аватар для dr.curse
386 / 342 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
30.12.2011, 00:32     где моя ошибка? #4
ilyashis, а что пишет
ilyashis
-36 / 0 / 1
Регистрация: 08.12.2011
Сообщений: 134
30.12.2011, 00:34  [ТС]     где моя ошибка? #5
HTML5
1
2
3
4
5
6
7
8
9
1>------ Построение начато: проект: zahet__10, Конфигурация: Debug Win32 ------
1>  z.cpp
1>d:\labi\c\10\zahet__10\z.cpp(15): warning C4018: <=: несоответствие типов со знаком и без знака
1>d:\labi\c\10\zahet__10\z.cpp(23): error C2059: синтаксическая ошибка: for
1>d:\labi\c\10\zahet__10\z.cpp(23): warning C4552: >=: оператор не имеет результата; требуется оператор с побочным действием
1>d:\labi\c\10\zahet__10\z.cpp(23): error C2143: синтаксическая ошибка: отсутствие ";" перед ")"
1>d:\labi\c\10\zahet__10\z.cpp(23): error C2143: синтаксическая ошибка: отсутствие ";" перед ")"
1>d:\labi\c\10\zahet__10\z.cpp(33): fatal error C1075: конец файла обнаружен ранее, чем левая фигурная скобка "{" в "d:\labi\c\10\zahet__10\z.cpp(7)"
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
dr.curse
 Аватар для dr.curse
386 / 342 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
30.12.2011, 00:36     где моя ошибка? #6
вот исправил
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 <iostream>
#include <string>
using namespace std;
 
int main()
{
 int i,j;
 string s,sl,b;
     cout<<"Vvedite slovo ";
     cin>> s;
     sl="";      // sl обнуляется
     s=s+' ';    // прибовляет пробел в конец строки
     for(int i=1;i<=s.size();i++)     //
        {
          while (s[i]!=' ')             // пока s[i] не пробел
             {
                 sl=sl+s[i];            //отделяет слово от гл стр
                 i++;
  
             }
          for (int j=sl.size();j>=1;j--)
  
            b=b+sl[j];
            b=b+' ';
            sl="";
             //if i>length(s) then i:=length(s);
  
        }
     cout<<s; 
     return 0;
  }
ilyashis
-36 / 0 / 1
Регистрация: 08.12.2011
Сообщений: 134
30.12.2011, 00:38  [ТС]     где моя ошибка? #7
она у тебя работает?

Добавлено через 24 секунды
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
"zahet__10.exe": Загружено: "D:\labi\c\10\Debug\zahet__10.exe", Символы загружены.
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\ntdll.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\kernel32.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\KernelBase.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\msvcp100d.dll", Символы загружены.
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\msvcr100d.dll", Символы загружены.
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\user32.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\gdi32.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\lpk.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\usp10.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\msvcrt.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\advapi32.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\sechost.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\rpcrt4.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\sspicli.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\cryptbase.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\imm32.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\msctf.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\uxtheme.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\dwmapi.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\ole32.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\clbcatq.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\oleaut32.dll", Невозможно найти или открыть файл PDB
Программа "[31772] zahet__10.exe: Машинный код" завершилась с кодом 3 (0x3).
dr.curse
 Аватар для dr.curse
386 / 342 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
30.12.2011, 00:39     где моя ошибка? #8
компилится

Добавлено через 53 секунды
это уже косяк твоего компилятора
ilyashis
-36 / 0 / 1
Регистрация: 08.12.2011
Сообщений: 134
30.12.2011, 00:41  [ТС]     где моя ошибка? #9
после ввода слова выходит ошибка
а так кампилирует успешно
res
56 / 9 / 1
Регистрация: 05.04.2010
Сообщений: 143
30.12.2011, 00:41     где моя ошибка? #10
и в циклах при сравнений с size() смените переменную int на unsigned int
dr.curse
 Аватар для dr.curse
386 / 342 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
30.12.2011, 00:42     где моя ошибка? #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
25
26
27
28
29
30
31
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
 int i,j;
 string s,sl,b;
     cout<<"Vvedite slovo ";
     cin>> s;
     sl="";      // sl обнуляется
     s=s+' ';    // прибовляет пробел в конец строки
     for(int i=0;i<s.size();i++)     //
        {
          while (s[i]!=' ')             // пока s[i] не пробел
             {
                 sl=sl+s[i];            //отделяет слово от гл стр
                 i++;
  
             }
          for (int j=sl.size()-1;j>=0;j--)
  
            b=b+sl[j];
            b=b+' ';
            sl="";
             //if i>length(s) then i:=length(s);
  
        }
     cout<<s; 
     return 0;
  }
ilyashis
-36 / 0 / 1
Регистрация: 08.12.2011
Сообщений: 134
30.12.2011, 00:44  [ТС]     где моя ошибка? #12
компилирует
HTML5
1
2
3
4
1>------ Построение начато: проект: zahet__10, Конфигурация: Debug Win32 ------
1>  z.cpp
1>  zahet__10.vcxproj -> D:\labi\c\10\Debug\zahet__10.exe
========== Построение: успешно: 1, с ошибками: 0, без изменений: 0, пропущено: 0 ==========

после ввода слова
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
"zahet__10.exe": Загружено: "D:\labi\c\10\Debug\zahet__10.exe", Символы загружены.
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\ntdll.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\kernel32.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\KernelBase.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\msvcp100d.dll", Символы загружены.
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\msvcr100d.dll", Символы загружены.
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\user32.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\gdi32.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\lpk.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\usp10.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\msvcrt.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\advapi32.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\sechost.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\rpcrt4.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\sspicli.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\cryptbase.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\imm32.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\msctf.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\uxtheme.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\dwmapi.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\ole32.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\clbcatq.dll", Невозможно найти или открыть файл PDB
"zahet__10.exe": Загружено: "C:\Windows\SysWOW64\oleaut32.dll", Невозможно найти или открыть файл PDB
Программа "[32516] zahet__10.exe: Машинный код" завершилась с кодом 3 (0x3).
dr.curse
 Аватар для dr.curse
386 / 342 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
30.12.2011, 00:45     где моя ошибка? #13
посмотри пост выше
ilyashis
-36 / 0 / 1
Регистрация: 08.12.2011
Сообщений: 134
30.12.2011, 00:48  [ТС]     где моя ошибка? #14
она работает вот только слово не переворачивается
dr.curse
 Аватар для dr.curse
386 / 342 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
30.12.2011, 00:51     где моя ошибка? #15
ilyashis, а так?
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 <string>
using namespace std;
 
int main()
{
 int i,j,l;
 string s,sl,b;
     cout<<"Vvedite slovo ";
     cin>> s;
     sl="";      // sl обнуляется
     s=s+' ';    // прибовляет пробел в конец строки
     for(int i=0;i<s.size();i++)     //
        {
          l=0;
          while (s[l]!=' ')             // пока s[i] не пробел
             {
                 sl=sl+s[l];            //отделяет слово от гл стр
                 l++;
  
             }
          for (int j=sl.size()-1;j>=0;j--)
  
            b=b+sl[j];
            b=b+' ';
            sl="";
             //if i>length(s) then i:=length(s);
  
        }
     cout<<s; 
     return 0;
  }
ilyashis
-36 / 0 / 1
Регистрация: 08.12.2011
Сообщений: 134
30.12.2011, 00:55  [ТС]     где моя ошибка? #16
все работает!!!!!! мы забыли s присвоить b (s=b
вот она
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
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
 int i,j;
 string s,sl,b;
     cout<<"Vvedite slovo ";
     cin>> s;
     sl="";      // sl обнуляется
     s=s+' ';    // прибовляет пробел в конец строки
     for(int i=0;i<s.size();i++)     //
        {
          while (s[i]!=' ')             // пока s[i] не пробел
             {
                 sl=sl+s[i];            //отделяет слово от гл стр
                 i++;
  
             }
          for (int j=sl.size()-1;j>=0;j--)
  
            b=b+sl[j];
            b=b+' ';
            sl="";
             //if i>length(s) then i:=length(s);
  
        }
     s=b;
     cout<<s; 
     system("pause");
     return 0;
  }
Добавлено через 3 минуты
смотрите почему когда я ввожу несколько слов он переворачивает только одну и выводит только первую
dr.curse
 Аватар для dr.curse
386 / 342 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
30.12.2011, 01:09     где моя ошибка? #17
измени
C++
1
cin>>s;
на
C++
1
getline(cin,s);
ilyashis
-36 / 0 / 1
Регистрация: 08.12.2011
Сообщений: 134
30.12.2011, 01:11  [ТС]     где моя ошибка? #18
aram_gyumri
незнаешь?

Добавлено через 1 минуту
все огромное спасибо!!!
dr.curse
 Аватар для dr.curse
386 / 342 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
30.12.2011, 01:11     где моя ошибка? #19
постом выше написал

Добавлено через 11 секунд
незачто
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.12.2011, 04:56     где моя ошибка?
Еще ссылки по теме:

Люди добрые, где моя ошибка? C++
C++ В чём заключается моя ошибка?
Исправьте пожалуйста, где моя ошибка? спасибо C++

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

Или воспользуйтесь поиском по форуму:
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
30.12.2011, 04:56     где моя ошибка? #20
ilyashis, судя по тому что делает ваша программа вы хотите просто перевернуть слово.
в таком случае проще сделать так
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 <iostream>
using std::cin;
using std::cout;
 
#include <cstring>
using std::strlen;
 
 
int main()
{
 char s[100];
 unsigned int len, i;
 char temp;
 
 cout << "Please enter your word\n>";
 cin >> s;
 
 len = strlen(s);
 
 for(i = 0; i < len/2; ++i){  //достаточно пройти половину слова
     temp = s[i];
     s[i] = s[(len-1)-i];
     s[(len-1)-i] = temp;
 }
 
 
 cout << "\nString reverse :: \n>"<<s;
 
     system("pause");
     return 0;
  }
вывод

Please enter your word
>123456qwerty

String reverse ::
>ytrewq654321


Добавлено через 1 час 35 минут
для переворта слов в строке
вариант без использования дополнительных переменных для хранения обрабатываемой строки
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
#include <iostream>
using std::cin;
using std::cout;
 
#include <cstring>
using std::strlen;
using std::string;
using std::getline;
 
int main() {
    string s;
    unsigned int len, i;
    char temp;
    int startIndex = 0, endIndex;
 
    cout << "Please enter your sentence\n>";
    getline(cin, s);
 
    len = s.size();
 
    for (i = 0; i < len; ++i) {  //пока не достагнут конец строки
        if(i == len-1 || s.at(i) == ' '){ //если текущий символ пробел или последний символ строки
            endIndex = s.at(i) == ' ' ? i-1 : i;  //индекс конца слова выставляется в зависимости от условия
            for(int j = 0; j <=(endIndex-startIndex)/2; ++j){ // переворачиваем
                temp = s.at(startIndex+j);                    // текущее
                s.at(startIndex+j) = s.at(endIndex-j);        //  слово
                s.at(endIndex-j) = temp;
            }
            startIndex = i+1; //уходим на следующий после пробела сивол
        }
    }
 
//  for(i = 0; i < len/2; ++i){  //достаточно пройти половину предложения
//           temp = s[i];
//           s[i] = s[(len-1)-i];
//           s[(len-1)-i] = temp;
//   }
 
    cout << "\nString reverse :: \n>" << s;
 
    system("pause");
    return 0;
}
вывод

Please enter your sentence
>qwer qwert asd zxcvb

String reverse ::
>rewq trewq dsa bvcxz


если раскоментировать строки 33 - 37
то
вывод

Please enter your sentence
>qwert asdf zxc

String reverse ::
>zxc asdf qwert
Yandex
Объявления
30.12.2011, 04:56     где моя ошибка?
Ответ Создать тему
Опции темы

Текущее время: 02:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru