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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти сумму первых 5 цифр дробной части действительного числа.например для числа 23,1680989 она равна 24.програма на С++ http://www.cyberforum.ru/cpp-beginners/thread684560.html
Найти сумму первых 5 цифр дробной части действительного числа.например для числа 23,1680989 она равна 24.Програма на С++.ПОЖАЛУЙСТА ПОМОГИТЕ,ОЧЕНЬ СРОЧНО!
C++ программа обработки символьной строки Если первый аргумент командной строки опция-а, то распечатать другие аргументы без их первых символов, а если первой идет опция-r, то распечатать аргументы через один в обратном порядке. (Если аргументов нет - выдать сообщение.) Пока только есть вот такая наброска: #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char *p1, *p2; 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 если оно равно нулю. Число передается через параметр типа int, возвращаемое значение - int.
C++ Как можно сделать презинтацию из задачь которые я сделала на турбо паскале. Помогите пожалуйста.Как можно сделать презинтацию из задачь которые я сделала на турбо паскале. подробнее

Показать сообщение отдельно
aleksand
21 / 9 / 2
Регистрация: 18.06.2011
Сообщений: 185
30.10.2012, 19:58     Указатель и рекурсия
Подскажите почему не работает? (логика работы программы изложена в комментах к ней)
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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru