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

Как спростить код ? рекурсия (ввести последовательность чисел (окончание ввода - 0) и вывести их вобратной последовательности) - C++

Восстановить пароль Регистрация
 
Виkтория
 Аватар для Виkтория
1 / 1 / 0
Регистрация: 04.06.2013
Сообщений: 63
16.06.2013, 23:49     Как спростить код ? рекурсия (ввести последовательность чисел (окончание ввода - 0) и вывести их вобратной последовательности) #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
34
35
36
37
#include <iostream>
using std::cout;
using std::endl;
using std::cin;
const int n=100;
 
int arr[n] = {};
int i = 0;
int count = 0;
 
int InitArray(int i)
{
    std::cin>>arr[i];
    if(arr[i]==0)
        return count;
    count++;
    InitArray(i+1);
}
 
void ReverseOutPut(int i)
{
    std::cout<<arr[i]<<std::endl;
    if (i <= 0)
        return;
    ReverseOutPut(i-1);
}
 
int main(){
    int arr[n];
    setlocale (LC_ALL,"rus");
    cout << "Введите последовательность чисел:\n";
    count = InitArray(0);
    cout<<"\nВ обратном порядке: \n";
    ReverseOutPut(count);
    system ("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2013, 23:49     Как спростить код ? рекурсия (ввести последовательность чисел (окончание ввода - 0) и вывести их вобратной последовательности)
Посмотрите здесь:

Дана последовательность чисел. Найти количество различных чисел в этой последовательности C++
Дана последовательность чисел. Найти количество различных чисел в этой последовательности C++
Ввести последовательность из n целых чисел C++
ввести последовательность чисел C++
Рекурсивные функции. Ввести последовательность чисел и вывести их в обратной последовательности. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
newyork7776
 Аватар для newyork7776
346 / 339 / 79
Регистрация: 21.05.2013
Сообщений: 1,305
Завершенные тесты: 1
17.06.2013, 00:21     Как спростить код ? рекурсия (ввести последовательность чисел (окончание ввода - 0) и вывести их вобратной последовательности) #2
я так понял что юзер пишет числа в масив и нужно вивести масив только перевернуть эго?

Добавлено через 8 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
int main()
{
    int mas[100],n;
    cout << "Enter number = ";cin >> n;
    n++;
    for (int i=1;i<n;i++)
    {
        cout << "Enter " << i << " number = ";cin >> mas[i];
    }
    cout << "\nArray [start] = ";
    for (int i=1;i<n;i++)
        cout << mas[i] << " ";
    cout << "\nArray [finish] = ";
    n--;
       for (int i=n;i>0;i--)
           cout << mas[i] << " ";
       cout << "\n";
       system("pause");
}
Виkтория
 Аватар для Виkтория
1 / 1 / 0
Регистрация: 04.06.2013
Сообщений: 63
17.06.2013, 00:39  [ТС]     Как спростить код ? рекурсия (ввести последовательность чисел (окончание ввода - 0) и вывести их вобратной последовательности) #3
да ,только есть условие : Ввести последовательность чисел (окончание ввода - 0) и вывести их вобратной последовательности
newyork7776
 Аватар для newyork7776
346 / 339 / 79
Регистрация: 21.05.2013
Сообщений: 1,305
Завершенные тесты: 1
17.06.2013, 00:55     Как спростить код ? рекурсия (ввести последовательность чисел (окончание ввода - 0) и вывести их вобратной последовательности) #4
ок сделаю

Добавлено через 7 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
int main()
{
    int mas[1000],n;
    
    n=500;
    for (int i=1;i<n;i++)
    {
        cout << "Enter " << i << " number = ";cin >> mas[i];
        if (mas[i]==0) {n=i;break;}
    }
    cout << "\nArray [start] = ";
    for (int i=1;i<n;i++)
        cout << mas[i] << " ";
    cout << "\nArray [finish] = ";
    n--;
       for (int i=n;i>0;i--)
           cout << mas[i] << " ";
       cout << "\n";
       system("pause");
}
нормально или нет?

Добавлено через 40 секунд
немного криво )))
KOPOJI
Модератор
 Аватар для KOPOJI
16242 / 6453 / 390
Регистрация: 12.06.2012
Сообщений: 19,338
17.06.2013, 00:58     Как спростить код ? рекурсия (ввести последовательность чисел (окончание ввода - 0) и вывести их вобратной последовательности) #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using std::cout;
using std::endl;
using std::cin;
const int MAX=100;
 
int main(void)
{
    int arr[MAX], i = 0, count = 0;
    do
    {
        std::cout << "Enter number";
        std::cin >> arr[i++];
        count++;
    }
    while(arr[i] != 0 || i == MAX);
    for (i = count; i > 0; i--)
        std::cout << arr[i];
}
проверить нет возможности..
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11825 / 6804 / 769
Регистрация: 27.09.2012
Сообщений: 16,873
Записей в блоге: 2
Завершенные тесты: 1
17.06.2013, 08:26     Как спростить код ? рекурсия (ввести последовательность чисел (окончание ввода - 0) и вывести их вобратной последовательности) #6

Не по теме:

Цитата Сообщение от Виkтория Посмотреть сообщение
Как спростить код ? рекурсия
Цитата Сообщение от Виkтория Посмотреть сообщение
Ввести последовательность чисел (окончание ввода - 0) и вывести их вобратной последовательности
newyork7776, KOPOJI, а где рекурсия?


Как вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
void foo(){
    int n;
    std::cin>>n;
    if(n==0){
        std::cout<<"\n"<<n<<" ";
        return;
    }
    foo();
    std::cout<<n<<" ";
}
 
 
int main(){
    std::cout<<"Input numbers ->";
    foo();
}
KOPOJI
17.06.2013, 09:32     Как спростить код ? рекурсия (ввести последовательность чисел (окончание ввода - 0) и вывести их вобратной последовательности)
  #7

Не по теме:

Цитата Сообщение от Croessmah Посмотреть сообщение
KOPOJI, а где рекурсия?
а я на заголовок не смотрел, смотрел на само задание..
там еще у меня условие в while неверное, надо
C++
1
while( arr[i] != 0 || i != (MAX - 1) );

Yandex
Объявления
17.06.2013, 09:32     Как спростить код ? рекурсия (ввести последовательность чисел (окончание ввода - 0) и вывести их вобратной последовательности)
Ответ Создать тему
Опции темы

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