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

Указатель и рекурсия - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти сумму первых 5 цифр дробной части действительного числа.например для числа 23,1680989 она равна 24.програма на С++ http://www.cyberforum.ru/cpp-beginners/thread684560.html
Найти сумму первых 5 цифр дробной части действительного числа.например для числа 23,1680989 она равна 24.Програма на С++.ПОЖАЛУЙСТА ПОМОГИТЕ,ОЧЕНЬ СРОЧНО!
C++ программа обработки символьной строки Если первый аргумент командной строки опция-а, то распечатать другие аргументы без их первых символов, а если первой идет опция-r, то распечатать аргументы через один в обратном порядке. (Если... http://www.cyberforum.ru/cpp-beginners/thread684557.html
Не вызывается деструктор C++
#include <iostream> using namespace std; class myclass { int a; public: myclass(); // конструктор ~myclass(); // деструктор void show(); };
C++ Дана вещественная матрица размерности n * m. поменять местами строки с максимальным и минимальным элементами.
Дана вещественная матрица размерности n * m. поменять местами строки с максимальным и минимальным элементами.
C++ Напишите функцию, которая вычисляет сигнум-функцию числа http://www.cyberforum.ru/cpp-beginners/thread684536.html
Напишите функцию, которая вычисляет сигнум-функцию числа. Сигнум-функция возвращает: 1 если число положительное, -1 если число отрицательное, и 0 если оно равно нулю. Число передается через параметр...
C++ Как можно сделать презинтацию из задачь которые я сделала на турбо паскале. Помогите пожалуйста.Как можно сделать презинтацию из задачь которые я сделала на турбо паскале. подробнее

Показать сообщение отдельно
aleksand
21 / 9 / 2
Регистрация: 18.06.2011
Сообщений: 185

Указатель и рекурсия - C++

30.10.2012, 19:58. Просмотров 872. Ответов 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
33
#include <iostream>
#include <windows.h>
#include <string.h>
#include <stdio.h>
using namespace std;
 
void reverse(char *s);
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    char *s, *q;
    char str[] = "Это";
    s = str;
    q = str;
    while(*s)
    {
       printf("%s\n", s);
       s++;
    }
    printf("%s\n", q);
    reverse(s, q); // передаю два указателя: 1). s указывает на конец строки. 2). q указывает на начало строки
    return 0;
}
 
void reverse(char *s, char *q) 
{
    printf("%s\n", s);
    if(*s!=*q) reverse(s-1); // тут у нас если значение указателя s не равно значению указателя q, то у нас будет делаться рекурсия и в определённый момент q==s и тогда у нас будет return. Почему собственно код не работает? Вроде всё правильно.
    else return;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru