Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 22.02.2010
Сообщений: 8

Заполнить массив числами Фибоначчи и записать в файл

26.02.2010, 16:45. Показов 2954. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Заполнить массив a[0..n] числами Фибоначчи. Значение n прочитать из файла input.txt. Вывести массив на экран и записать в файл output.txt.

Почему-то программа работает не правильно!!!! Посоветуйте что-нибудь!!!!!
и чем можно заменить файл "malloc"!!!!!



C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
 
int main()
{
    FILE *f;  int i=0,n=10;
     if (!(f = fopen ("input.txt", "rb"))) {cout << "\nFileError"; return 0;}
     fscanf(f,"%d",&n);
     fclose(f);
     if (!(f = fopen ("output.txt", "wb"))) {cout << "\nFileError"; return 0;}
unsigned long int *buf= (unsigned long int*)malloc((n+1)*sizeof(unsigned long int));
    buf[0]=0;
    buf[1]=1;
    for (i=1;i<=n+1;i++)
        {
        buf[i+1]=buf[i]+buf[i-1];
        fprintf(f,"%d\n",buf[i-1]);
        }
    fclose(f);
    return 0;
}
Добавлено через 3 часа 7 минут
Неужли никто не знает?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.02.2010, 16:45
Ответы с готовыми решениями:

Заполнить массив случайными числами, отсортировать его и записать в файл
Как выполнить след. задачи? Заполнить массив случайными числами Отсортировать его Сохранить отсортированный массив на диск

Заполнить двоичный файл числами Фибоначчи
Разработать программу для заполнения двоичного файла числами Фибоначчи (первые две компоненты будут равны 1, каждая следующая компонента...

Заполнить массив числами Фибоначчи
помогите пожалуйста исправить, почему не выводится &quot;1&quot; в первом массиве с числами Фибоначчи?? .486 .model flat, stdcall option...

13
81 / 39 / 3
Регистрация: 29.01.2010
Сообщений: 386
26.02.2010, 16:51
Что именно работает неправильно????
0
Day
 Аватар для Day
1180 / 990 / 83
Регистрация: 29.10.2009
Сообщений: 1,385
26.02.2010, 17:06
Demiann,
1. В каком виде записано число в input.txt ? Ежели просто текстом (что скорее всего и есть)
то открывать файлы надо без 'b'.
2. Сколь велико n ? Ряд фибоначчи растет очень быстро - задавай n < 20 (примерно)
3. На фига тебе все их хранить и какие-то массивы аллокачивать ? Тебе нужны последние 2
- вот с ними и работай
4. Когда выводишь, поставь на всякий случай "%ld\n"
5. Старший индекс массива buf - n (нумерация-то с 0)
Значит в цикле i<=n, нет, даже i<n, ты же еще buf[i+1] делаешь
1
Эксперт С++
 Аватар для nameless
342 / 306 / 36
Регистрация: 16.06.2009
Сообщений: 486
26.02.2010, 17:06
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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
 
#define INPUT_FILENAME "input.txt"
#define OUTPUT_FILENAME "output.txt"
 
int main()
{
    FILE *f;
    int* a;
    int n, i;
 
    if ((f = fopen(INPUT_FILENAME, "r")) == NULL) {
        printf("\nError. Can't open file %s.", INPUT_FILENAME);
        exit(1);
    }
    fscanf(f, "%d", &n);
    fclose(f);
 
    if ((f = fopen(OUTPUT_FILENAME, "w")) == NULL) {
        printf("\nError. Can't open file %s.", OUTPUT_FILENAME);
        exit(1);
    }
 
    a = new int [n];
 
    a[0] = 1;
    a[1] = 1;
 
    fprintf(f, "%d ", a[0]);
    fprintf(f, "%d ", a[1]);
 
    for (i = 2; i < n; i++)
    {
        a[i] = a[i-1] + a[i-2];
        fprintf(f, "%d ", a[i]);
    }
 
    fclose(f);
 
    _getch();
    return 0;
}
1
425 / 229 / 87
Регистрация: 25.03.2009
Сообщений: 744
26.02.2010, 17:36
Demiann, у вас в коде какое то странное сочитание iostream и stdio, в С нет никаких iostream'ov это ваще ООП-шная иерархия для вывода в С++, stdio - standard input output то есть юзайте в С всё что похоже только на printf scanf. Эт вам на будующее.
1
0 / 0 / 0
Регистрация: 22.02.2010
Сообщений: 8
26.02.2010, 18:10  [ТС]
Day..... да просто текстом.

Добавлено через 9 минут
вот с этой строкой у меня проблемы!!! Она моему препаду не нравится...
C
1
unsigned long int *buf= (unsigned long int*)malloc((n+1)*sizeof(unsigned long int));
Чем можно ее заменить???
0
Эксперт С++
 Аватар для nameless
342 / 306 / 36
Регистрация: 16.06.2009
Сообщений: 486
26.02.2010, 18:19
Demiann,
C
1
a = new int [n];
вот этим, например.
1
81 / 39 / 3
Регистрация: 29.01.2010
Сообщений: 386
26.02.2010, 18:26
Не знаю точно, но помоему на си выделять таким образом память нельзя (оператора нью там вообще помоему нет)
1
0 / 0 / 0
Регистрация: 22.02.2010
Сообщений: 8
26.02.2010, 18:28  [ТС]
Надо поробовать!
0
81 / 39 / 3
Регистрация: 29.01.2010
Сообщений: 386
26.02.2010, 18:34
Цитата Сообщение от Demiann Посмотреть сообщение
Надо поробовать!
попробовал. Нельзя
0
0 / 0 / 0
Регистрация: 22.02.2010
Сообщений: 8
26.02.2010, 19:51  [ТС]
Мда...как же тут поступить?

Добавлено через 1 минуту
Мда.... что делать?
0
81 / 39 / 3
Регистрация: 29.01.2010
Сообщений: 386
26.02.2010, 20:26
не знаю правильно или нет? но попробуй так.
C
1
unsigned int *s=malloc(n*2);
1
Day
 Аватар для Day
1180 / 990 / 83
Регистрация: 29.10.2009
Сообщений: 1,385
26.02.2010, 21:42
Цитата Сообщение от Demiann Посмотреть сообщение

вот с этой строкой у меня проблемы!!! Она моему препаду не нравится...
unsigned long int *buf= (unsigned long int*)malloc((n+1)*sizeof(unsigned long int));
Чем можно ее заменить???
А чем он недоволен? Строка как строка.
Правда, надо спереди "#include <alloc.h>"
Но другое дело: что выделять память вообще не нужно!
C
1
2
3
4
5
6
7
8
a = 0;
b = 1;
for .... {
   printf("%ld\n", b);
   t = b;
   b += a;
   a = t;
}
Вот и будут тебе все фибоначчиевы кролики
1
0 / 0 / 0
Регистрация: 22.02.2010
Сообщений: 8
27.02.2010, 06:08  [ТС]
Ему не нравится этот способ решения...... говорит нужен более легкий!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.02.2010, 06:08
Помогаю со студенческими работами здесь

Заполнить массив числами Фибоначчи
Помогите пожалуйста! Надо ввести размер массива N и заполнить массив из N элементов числами Фибоначчи (первые два числа Фибоначчи...

Заполнить массив числами фибоначчи
Задачка С++ : Заполнить массив числами фибоначчи (в которой каждое последующее число равно сумме двух предыдущих чисел (0, 1, 1, 2, 3,...

Заполнить массив числами Фибоначчи
Помогите, пожалуйста. Создайте массив из 15 чисел и заполните его числами Фибоначчи.

Заполнить массив числами Фибоначчи
Задание: создать массив и заполнить его числами Фибоначчи, которые будут создаваться рекурсией. #include &lt;cstdlib&gt; #include...

Заполнить массив из 8 элементов числами Фибоначчи
1)Заполнить двумерный массив 4х2 целых чисел с помощью типизированной костанты.Вывести массив на экран в виде таблицы. 2)Заполнить массив...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru