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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Задача на Массив http://www.cyberforum.ru/cpp-beginners/thread420681.html
Задано числа а1,a2,...,a10 и массив Аx. Заменить нулями в массиве А те элементы с парной суммой индексов для которых есть такие, которые равны а1,a2,...,a10 Добавлено через 17 минут #include <vcl.h> #pragma hdrstop #include <math.h> #include <conio.h> #include <stdio.h> #include <iostream.h> #include <tchar.h>
C++ Ошибка с перегрузкой pow error C2668: 'pow' : ambiguous call to overloaded function #include "stdafx.h" #include <iostream> #include <math.h> using namespace std; template <class Temp> class List { http://www.cyberforum.ru/cpp-beginners/thread420663.html
C++ Создание формы (окна)
Здравствуйте! Кто - нибудь знает как создать окно (или по проще белый прямоугольник по центру экрана) без использования WinAPI и всяких библиотек наподобии Qt.
Перенос первого слова в конец строки. C++
Создать приложение, которое считывает строку текста и переносит первое сло*во в конец строки. Результат вывести на экран.
C++ Подсчитать CRC для файла http://www.cyberforum.ru/cpp-beginners/thread420625.html
Здравствуйте! Есть имя файла. Как для этого файла подсчитать CRC? Проблема не в понимании алгоритма, а в том, что на данном языке я не писал уже несколько лет. Помогите, пожалуйста, быстренько набросать код. Добавлено через 14 минут Неужели никто не знает?
C++ Выравнивание строки по левому краю до заданной длины Разработать функцию, которая выполняет ту обработку фрагмента текста, которая определена в Вашем индивидуальном задании. При реализации функции запрещается пользоваться функциями библиотек языка C. Примечания: 1. Функция должна возвращать результат в любом случае. Например, необходимо предусмотреть работу функции при некорректном задании ее параметров, некорректном вводе данных и т.п. ... подробнее

Показать сообщение отдельно
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
30.12.2011, 04:56     где моя ошибка?
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
 
Текущее время: 14:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru