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

С Использованием рекурсии! - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ error C2668 http://www.cyberforum.ru/cpp-beginners/thread263700.html
ошибка 1>c:\documents and settings\er\мои документы\visual studio 2008\projects\project13\project13\project13.cpp(11) : error C2668: stack::stack: неоднозначный вызов перегруженной функции 1> c:\documents and settings\er\мои документы\visual studio 2008\projects\project13\project13\incl.h(17): может быть 'stack::stack(int,char)' 1> c:\documents and settings\er\мои...
C++ вывод массива функцией. /* 4 8.Известна ежемесячная 3/п персонала предприятия в течение календарного года. Вывести фамилии сотрудников с минимальной и максимальной 3/п. Считать, что штат предприятия составляет 8 чел. Подсчет годовой 3/п работника оформить в виде функции. */ #include <vcl.h> #include <iostream.h> #include <iomanip.h> http://www.cyberforum.ru/cpp-beginners/thread263678.html
C++ Дана последовательность x1, x2, …, xn (n<=20). Пронормировать элементы последовательности их средним значением.
Помогите,пожалуйста, с чем сможете.... 1.Дана последовательность x1, x2, …, xn (n<=20). Пронормировать элементы последовательности их средним значением. 2.Вычислить элементы матрицы С, являющейся произведением нижней треугольной матрицы пятого порядка на верхнюю треугольную матрицу того же порядка. 3.Вводятся 2 строки. Найти слово минимальной длины, которое есть в обеих строках. ...
C++ Калькулятор с указателем
Доброго всем времени суток! Вот наваял калькулятор,а вот как в нем можно использовать вместо переменных один указатель? Зараннее благодарен за помощь. #include<iostream> #include<conio.h> using namespace std; void add(float a,float b) { cout<<a<<"+"<<b<<"="<<a+b<<"\n"; }
C++ как элегантно писать код STL http://www.cyberforum.ru/cpp-beginners/thread263653.html
Здравствуйте. Подскажите как правильнои оптимально записать следущие частички кода с использованием СТЛ Скажем,в качестве массив используем вектор vec в качестве обычного a 1)Считать элементи с потока for(int i=0;i<N;i++) cin>>a; Как записать правильней с помощью СТЛ int inp;
C++ Количество элементов в массиве Всем привет. у меня есть массив на 100 элементов, и я в него в ношу 3 элемента. double mas; int kol; mas=0; mas=1; mas=2; подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
25.03.2011, 14:39     С Использованием рекурсии!
Цитата Сообщение от easybudda Посмотреть сообщение
может чего не понял, но у меня вот в таком
в принципе, ты понял все правильно Программа ведь делает как раз то, что нужно - печатает сначала отрицательные числа, потом положительные. Кто же виноват, что ввод и вывод смешиваются?
Нам же не сказано, в каком виде задана последовательность чисел. Это может быть и массив, как в твоем примере, а может быть и файл с данными.
Можно сделать и так:
Bash
1
2
3
4
5
6
7
8
nameless@nameless-desktop:~/cpp-sample$ echo "-1 8 5 -3 5 -4 0" | ./cpp-sample 
-1
-3
-4
5
5
8
nameless@nameless-desktop:~/cpp-sample$

Или так:
Bash
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
nameless@nameless-desktop:~/cpp-sample$ cat main.cc
#include <iostream>
 
void rec()
{
    int num;
    std::cin >> num;
 
    if(num == 0)
    return;
    if(num < 0)
    {
    std::cerr << num << std::endl;
    rec();
    } else {
    rec();
    std::cerr << num << std::endl;
    }
}
 
int main()
{
    rec();
    return 0;
}
nameless@nameless-desktop:~/cpp-sample$ ./cpp-sample 2>out.txt && echo Result && cat out.txt
-4
-2
8
-2
1
-3
0
Result
-4
-2
-2
-3
1
8
nameless@nameless-desktop:~/cpp-sample$


Вот еще вариант со списком аргументов переменной длины:
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
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
 
void rec(int, ...);
void va_rec(int, va_list);
 
int main(void)
{
    rec(8, -3, 14, -1, 23, -5, 6, 0);
    exit(0);
}
 
void rec(int first, ...)
{
    if(first)
    {
    va_list ap;
    va_start(ap, first);
    va_rec(first, ap);
    va_end(ap);
    }
}
 
void va_rec(int last, va_list ap)
{
    if(!last)
    return;
 
    int arg = va_arg(ap, int);
 
    if(last < 0)
    {
    printf("%d\n", last);
    va_rec(arg, ap);
    } else {
    va_rec(arg, ap);
    printf("%d\n", last);
    }
}
 
Текущее время: 07:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru