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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
rivares1853
0 / 0 / 0
Регистрация: 30.03.2014
Сообщений: 68
#1

Почему не выдает на экран числовой ряд Фибоначчи в указанном диапазоне? - C++

05.04.2014, 03:05. Просмотров 483. Ответов 13
Метки нет (Все метки)

Объясните почему не выдаёт на экран числовой ряд в диапазоне от d до k?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
for (n; n!=0; n--)
    {
        a=a+b;//значение следующего 
        b=a-b;//значение предыдущего
 
 
            if( ( n >= d ) && ( n <= k ) )
                {
 
                  cout << a << " ";
                 
                }
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2014, 03:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему не выдает на экран числовой ряд Фибоначчи в указанном диапазоне? (C++):

Написать программу, выводящую на экран ряд чисел Фибоначчи до значения, указанного пользователем - C++
Написать программу, выводящую на экран ряд чисел Фибоначчи до значения, указанного пользователем(Числа Фибоначчи - последовательность...

Написать программу, выводящую на экран ряд чисел Фибоначчи до значения, указанного пользователем - C++
Кто сможет решить задачу на С++. Через цикл &quot;while&quot;? Написать программу, выводящую на экран ряд чисел Фибоначчи до значения, указанного...

Написать функцию, которая выводит на экран ряд чисел Фибоначчи до n. Число n принимается в качестве аргумента - C++
Кто знает как решить задачу на С++, при помощи рекурсии? Написать функцию, которая выводит на экран ряд чисел Фибоначчи до n. Число n...

Вывести все числа в указанном диапазоне - C++
1)Написать программу, которая выводит на экран все числа в диапазоне указанном пользователем. 2)Написать программу, которая выводит на...

Сортировка элементов массива в указанном диапазоне - C++
Помогите разобраться, пожалуйста. Суть задачи: взять определенный участок массива и отсортировать элементы между начальной и конечной...

Функция для заполнения массива в указанном пользовательском диапазоне - C++
Доброе время суток! Ребята на вечер контрольная, подскажите как реализовать такое приложение! Благодарен за ранее!!! Создать...

13
Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
05.04.2014, 07:20 #2
rivares1853, при каких d, k и n выполняется программа?
0
rivares1853
0 / 0 / 0
Регистрация: 30.03.2014
Сообщений: 68
05.04.2014, 13:17  [ТС] #3
n- положительное до бесконечности
d- положительное от 0 до (n-1)
k- положительное от 1 до n

Добавлено через 2 минуты
изначально a= 0 , b= 1
0
ValeryS
Модератор
6651 / 5060 / 470
Регистрация: 14.02.2011
Сообщений: 16,919
05.04.2014, 13:26 #4
и что ты хотел ?
какое a и b в начале цикла?

Добавлено через 3 минуты
Цитата Сообщение от rivares1853 Посмотреть сообщение
d- положительное от 0 до (n-1)
k- положительное от 1 до n
я правильно понял что d это начало диапазона k это конец ?
0
zss
Модератор
Эксперт С++
6401 / 5967 / 1944
Регистрация: 18.12.2011
Сообщений: 15,369
Завершенные тесты: 1
05.04.2014, 13:49 #5
В приведенном коде большая странность.
a,b никак не связаны с d,k,n
Вот пример функции вычисляющей n-е число Фибоначчи
Последовательность Фибоначчи
Используйте ее так
C++
1
2
3
4
5
6
for (i=1;i<=n;i++)
{
        a=Fibonachi(i); 
        if( ( a >= d ) && ( a <= k ) )
                  cout << a << " ";
}
0
rivares1853
0 / 0 / 0
Регистрация: 30.03.2014
Сообщений: 68
05.04.2014, 15:23  [ТС] #6
да.
0
ValeryS
Модератор
6651 / 5060 / 470
Регистрация: 14.02.2011
Сообщений: 16,919
05.04.2014, 15:30 #7
Цитата Сообщение от rivares1853 Посмотреть сообщение
да.
зачем тебе тогда n????
C++
1
2
3
4
5
6
7
8
9
10
11
for (int i=0; i<k; i++)
    {
        a=a+b;//значение следующего 
        b=a-b;//значение предыдущего
 
            if( ( i >= d ) )
                {
                 cout << a << " ";
            
                }
    }
0
rivares1853
0 / 0 / 0
Регистрация: 30.03.2014
Сообщений: 68
05.04.2014, 15:39  [ТС] #8
Мне и не нужно чтобы они были связаны. Мне просто нужно вывести на экран область значений от d до k. А они как раз связаны с n.

Добавлено через 3 минуты
ValeryS, В данном коде у тебя вместо моего n выступает i .

Добавлено через 4 минуты
ValeryS, и этот код также не работает.
0
ValeryS
Модератор
6651 / 5060 / 470
Регистрация: 14.02.2011
Сообщений: 16,919
05.04.2014, 16:52 #9
Цитата Сообщение от rivares1853 Посмотреть сообщение
и этот код также не работает.
что значит не работает?
как себя ведет?
какой компилятор? как запускаешь?
полный листинг приведи
0
rivares1853
0 / 0 / 0
Регистрация: 30.03.2014
Сообщений: 68
05.04.2014, 23:01  [ТС] #10
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
// ConsoleApplication10.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include<iostream>
using namespace std;
 
 
int main()
{
    setlocale(LC_CTYPE,"");
 
    int a , b, n, d, k, sum;
    a=0;
    b=1;
    cout << "Vvedite n ";
    cin >> n;
    cout << "Vvedite d ";
    cin >> d;
    cout << "Vvedite k ";
    cin >> k;
    cout << "Vvedite sum ";
    cin >> sum;
 
    while (n<=0)
    {
        cout << "ERROR! Enter the number greater than zero: ";
        cin >> n;
    }
 
        
      if ( ( d > n ) || (  d > sum  )  )    //   проверка на превышение значений
 
      {   cout<<"Ошибка, некорректно введёные значения " <<endl ;  system ("pause") ;  return 0 ;  }
 
 
 
 
    for (int i=0; i<k; i++)
    {
        a=a+b;//значение следующего 
        b=a-b;//значение предыдущего
 
            if( ( i >= d ) )
                {
                 cout << a << " ";
            
                }
    }
 
   
        
        
 
    system("pause");
    return 0;
}
Добавлено через 48 секунд
Visual Studio 2012

Добавлено через 3 минуты
Ввожу n=8, d=6, k=4, sum=21

Должен вывести на экран ряд Фибоначчи в диапазоне от 4 до 6, т.е. 3, 5
0
Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
05.04.2014, 23:42 #11
rivares1853, вы вообще осознанно писали данный код? Берете листик, ручку и прогоняете вашу программу, тем более при таком малом кол-ве итераций цикла, это сделать не сложно.
У вас последний цикл просто считает значения a и b, но выводить при ваших данных не будет, т.к. максимальное значение которое может принимать i равно 3, а у вас условие, если i >= 6.
1
ValeryS
Модератор
6651 / 5060 / 470
Регистрация: 14.02.2011
Сообщений: 16,919
06.04.2014, 04:10 #12
Цитата Сообщение от rivares1853 Посмотреть сообщение
d=6, k=4,
а что это начало диапазона больше чем конец?
0
rivares1853
0 / 0 / 0
Регистрация: 30.03.2014
Сообщений: 68
06.04.2014, 21:21  [ТС] #13
ValeryS, Ryuk, Блиннн, вот я олень!!!....
Спасибо парни, видимо я чё-то перегрелся... Вы правы. Код написан правильно, а значения ввожу какие-то левые, и при этом хочу чтобы что-то нормальное вышло...

Ещё раз спасибо огромное!!!
0
Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 871
06.04.2014, 22:21 #14
rivares1853, именно по этому лучше внутрипрограммно проверять на корректность ввода ваших данных.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2014, 22:21
Привет! Вот еще темы с ответами:

Решить задачу с заданным числом шагов в указанном диапазоне - C++
сама задача: Используя циклы while, do-while и for, написать три варианта программы получения на экране таблицы синусов для значений...

Определить все ли числа из массива лежат в указанном диапазоне - C++
Определить, все ли числа из массива А лежат в указанном диапазоне Ребят можно эту задачу только на С++ пожалуйста

Заполнить массив заданного размера нечётными числами в указанном диапазоне - C++
Заполнить массив из 50-ти элементов нечётными числами от 1 до 99. нужно использовать остаток от деления, что бы проверить число на четность.

Сгенерировать случайное число в указанном диапазоне, кратное заданному числу - C++
Срандомить число от 0 до 100000, кратное 5! Какой командой это можно реализовать?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Yandex
Объявления
06.04.2014, 22:21
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru