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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.63
Рома123
3 / 3 / 0
Регистрация: 18.05.2010
Сообщений: 140
#1

Заполнить массив первыми 12 членами последовательности Фиббоначи. - C++

28.06.2010, 13:25. Просмотров 1080. Ответов 15
Метки нет (Все метки)

Заполнить массив первыми 12 членами последовательности Фиббоначи.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream.h>
#include <conio.h>
#include <math.h>
 
int main()
{
clrscr();
    const int SIZE = 13;
    int i;
    int Array[SIZE];
    for(i =2; i < SIZE; ++i)
    {
    Array[i]=(i-1)+(i-2);
    cout << "Array[" << i << "] = " << Array[i] << endl;
    }
    return 0;
}
Ее нужно сделать с помощью указателей...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.06.2010, 13:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Заполнить массив первыми 12 членами последовательности Фиббоначи. (C++):

Заполнить массив двенадцатью первыми членами последовательности Фибоначчи - C++
Заполнить массив двенадцатью первыми членами последовательности Фибоначчи (последовательность, в которой первые два члена равны 1, а каждый...

Заполнить массив десятью первыми членами геометрической прогрессии - C++
Выполните следующие задания на заполнение массива: Заполнить массив десятью первыми членами геометрической прогрессии с известным первым...

Заполнить массив первыми 10 членами арифметической прогрессии с известным первым членом прогрессии А и разницей Р. - C++
С++ Помогите пожалусто. Заполнить массив первыми 10 членами арифметической прогрессии с известным первым членом прогрессии А и...

Массив. Найти, сколько членов первой последовательности совпадает с членами второй последовательности - C++
Всем привет! Нужна помощь в решении задачки. Вот её условие: Даны две последовательности целых чисел а1, а2,..., аn и b1, b2,...,...

Заполнить массив первыми ста простыми числами, и вывести массив на экран - C++
Объявите одномерный целочисленный массив в котором не более 100 элементов выполните генерацию массива первыми 100 простыми числами....

Заполнить массив первыми 100 простыми числами - C++
Объявите одномерный целочисленный массив, в котором не более 100 элементов. Выполните генерацию массива первыми 100 простыми числами....

15
Хохол
Эксперт С++
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
28.06.2010, 13:34 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int main()
{
    const int n = 12;
    int* a = new int[n];
    *a = 0, *(a+1) = 1;
    for(int *ptr = a+2; ptr < a+n; ptr++)
        *ptr = *(ptr-1) + *(ptr-2);
    for(int *ptr = a; ptr < a + n; ptr++)
        cout << *ptr << ' ';
    getch();
}
1
ValeryB
28.06.2010, 13:34
  #3

Не по теме:

Исправить ошыбку
Исправляю: ошибка

0
Рома123
3 / 3 / 0
Регистрация: 18.05.2010
Сообщений: 140
28.06.2010, 13:41  [ТС] #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int main()
{
        const int n = 12;
        int* a = new int[n];
        *a = 0, *(a+1) = 1;
        for(int *ptr = a+2; ptr < a+n; ptr++)
                *ptr = *(ptr-1) + *(ptr-2);
        for(int *ptr = a; ptr < a + n; ptr++)
                cout << *ptr << ' ';
        getch();
}
Не компилится, ругается на "ptr" =(
0
easybudda
Модератор
Эксперт CЭксперт С++
9695 / 5645 / 963
Регистрация: 25.07.2009
Сообщений: 10,851
28.06.2010, 13:44 #5
Рома123, просто из любопытства: а с какой целью два первых элемента в массиве пропускаются?
0
Рома123
3 / 3 / 0
Регистрация: 18.05.2010
Сообщений: 140
28.06.2010, 13:47  [ТС] #6
Цитата Сообщение от easybudda Посмотреть сообщение
Рома123, просто из любопытства: а с какой целью два первых элемента в массиве пропускаются?
Ну это последовательность Фиббоначи, т.е. его елемент, это сума двох предыдущих елементов
0
Crudelis
Шаровик затейник
675 / 417 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
28.06.2010, 13:47 #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream.h>
#include <conio.h>
#include <math.h>
 
int main()
{
clrscr();
        const int SIZE = 13;
        int i;
        int Array[SIZE];
        int *pArray=Array;
        for(i =2; i < SIZE; ++i)
        {
        *(pArray+i)=(i-1)+(i-2);
        cout << "Array[" << i << "] = " << *(pArray+i)<< endl;
        }
        return 0;
}
0
Рома123
3 / 3 / 0
Регистрация: 18.05.2010
Сообщений: 140
28.06.2010, 13:53  [ТС] #8
Цитата Сообщение от Crudelis Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream.h>
#include <conio.h>
#include <math.h>
 
int main()
{
clrscr();
        const int SIZE = 13;
        int i;
        int Array[SIZE];
        int *pArray=Array;
        for(i =2; i < SIZE; ++i)
        {
        *(pArray+i)=(i-1)+(i-2);
        cout << "Array[" << i << "] = " << *(pArray+i)<< endl;
        }
        return 0;
}
Последовательность Фиббоначи выводится неверно: 1 3 5 7 9 11 13 15 17 19 21
А должно быть:1 1 2 3 5 8 13 21 34 55 89 144
0
Crudelis
Шаровик затейник
675 / 417 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
28.06.2010, 13:56 #9
Рома123, вы написали в самом верху программу и попросили переделать её с помощью указателей, что я и сделал

Добавлено через 1 минуту
тогда может
for(i =0; i < SIZE; ++i)
0
Рома123
3 / 3 / 0
Регистрация: 18.05.2010
Сообщений: 140
28.06.2010, 16:44  [ТС] #10
Цитата Сообщение от Crudelis Посмотреть сообщение
Рома123, вы написали в самом верху программу и попросили переделать её с помощью указателей, что я и сделал

Добавлено через 1 минуту
тогда может
for(i =0; i < SIZE; ++i)
Нет, так тоже неполучается, выходит:-3 -1 1 3 5 7 9 11 13 15 17 19 21

Добавлено через 2 часа 3 минуты
на правах UP'a
0
neske
1504 / 871 / 84
Регистрация: 26.03.2010
Сообщений: 2,985
28.06.2010, 16:58 #11
Такой вариант пойдет?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
int main(){
        const int SIZE=15;
        int MAS[SIZE];
        int *first=MAS;
        //
        *first=1;
        *(first+1)=1;
        //
        for (int i=2; i<SIZE; i++)
            *(first+i)=*(first+i-1) + *(first+i-2);
 
        std::cout << "Rezult: ";
        for (int i=0; i<SIZE; i++)
            std::cout << *(first+i) << " ";
        std::cout << std::endl;
 
        system ("pause");
        return 0;
}
Результат: http://codepad.org/DTqOuw0j
1
Sanu0074
58 / 58 / 2
Регистрация: 14.06.2010
Сообщений: 1,189
Записей в блоге: 5
28.06.2010, 21:23 #12
А так правильно (только здесь без динамического выделения памяти)???

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
int main()
{
    const int n=13;
    int mass[n]={0,1,2,3,4,5,6,7,8,9,10,11,12};
    int mfib[13];
    for(int j=0, i=2; j<n, i<n; j++, i++)
    {mfib[j]=mass[i-2]+mass[i-1];}
    for(int i=0; i<11; i++)
    {cout<<mfib[i]<<"  ";}
}
0
neske
1504 / 871 / 84
Регистрация: 26.03.2010
Сообщений: 2,985
28.06.2010, 21:26 #13
Сказано же, с помощью указателей ..
0
easybudda
Модератор
Эксперт CЭксперт С++
9695 / 5645 / 963
Регистрация: 25.07.2009
Сообщений: 10,851
28.06.2010, 21:40 #14
если я всё правильно понял, первые два элемента уже должны иметь какие-то значения...
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
 
#define SIZE 13
 
int main(void){
    int arr[SIZE] = { 0, 1 }, * p;
    
    for ( p = arr + 2; p < arr + SIZE; ++p )
        *p = *(p - 1) + *(p - 2);
    
    for ( p = arr; p < arr + SIZE; ++p )
        printf("%d ", *p);
    printf("\n");
    
    return 0;
}
2
fasked
Эксперт С++
4948 / 2528 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
28.06.2010, 21:47 #15
Цитата Сообщение от easybudda Посмотреть сообщение
первые два элемента уже должны иметь какие-то значения...
зачем? по заданию вроде первыми 12 числами последовательности
0
28.06.2010, 21:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.06.2010, 21:47
Привет! Вот еще темы с ответами:

Заполнить массив десятью первыми простыми числами - C++
Заполнить массив десятью первыми простыми числами

Заполнить массив первыми 20 числами делящимся на 13 или 17 - C++
заполнить массив первыми 20 числами делящимся на 13 или 17, находящимся в интервале левая граница которого 300 #include &lt;iostream&gt; ...

Заполнить массив первыми N положительными нечетными числами - C++
Добрый вечер!Интересует вопрос как сделать так чтобы пользователь вводил целое число N и выполнялось создание массива целых чисел размера...

Заполнить массив из двадцати элементов первыми натуральными пятизначными числами - C++
Заполнить массив из двадцати элементов первыми натуральными пятизначными числами, сумма цифр которых двузначное число (на C++). Помогите,...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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