Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Задача с числами Фибоначчи 
:(
    Опции темы
user12312312312
Дата 12.12.2013, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 12.12.2013

Репутация: нет
Всего: нет



В общем, такая задача: Программе задаются: - первые два элемента ряда Фибоначчи x1 и x2 ; - количество элементов последовательности n; - имя выходного текстового файла. Программа должна осуществлять подсчёт и запись в текстовый файл значений первых n элементов последовательности натуральных чисел из ряда Фибоначчи Xk+1 = Xk + Xk-1. Запись в выходной текстовый файл должна производиться с новой строки для каждого очередного элемента последовательности. 

Вот код, целиком состоящий из ошибок и несовсем полный:


Код

#include <stdio.h>
#include <conio.h>
 
int main()
{
    int fib1 = 0, fib2 = 1;
    int fib = 0;
    int n;
    int i;
 
    printf("Input N: ");
    scanf("%d", &n);
 
    fib = 1;
 
    for (i = 1; i <= n; i++)
    {
        fib = fib2 + fib1;
        fib2 = fib1;
        fib1 = fib;
 
        printf("%d  ", fib);
    }
 
    getch();
    
for( nc = 0 ; fgetc(f_in)!=EOF ; nc++ ); fseek(f_in, 0, SEEK_SET);
 
 
FILE * file;
file = fopen("output.txt", "w");
for (int i = 0; i<N; i++);
{
fprintf(file, "%d ",b0);
b0 *= q;
}
fclose(file);
return 0;
}



Что тут нужно исправить и добавить? (только не говорите, что всё)
PM MAIL   Вверх
feodorv
Дата 12.12.2013, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



Цитата(user12312312312 @  12.12.2013,  17:52 Найти цитируемый пост)
for( nc = 0 ; fgetc(f_in)!=EOF ; nc++ ); fseek(f_in, 0, SEEK_SET);
 
 
FILE * file;
file = fopen("output.txt", "w");
for (int i = 0; i<N; i++);
{
fprintf(file, "%d ",b0);
b0 *= q;
}
fclose(file);

Это из какого-то другого задания?


Цитата(user12312312312 @  12.12.2013,  17:52 Найти цитируемый пост)
    scanf("%d", &n);

n задаётся пользователем, ок. А начальные значения для fib1 и fib2? По условию
Цитата(user12312312312 @  12.12.2013,  17:52 Найти цитируемый пост)
Программе задаются: - первые два элемента ряда Фибоначчи x1 и x2



Цитата(user12312312312 @  12.12.2013,  17:52 Найти цитируемый пост)
        printf("%d  ", fib);

Вывод нужно делать построчно (согласно условиям задачи), а не через ряд пробелов.


Ну и, конечно, нужен вывод в файл, а не на стандартный вывод. А так всё пучком, кроме перепутанных ролей fib1 и fib2

Цитата(user12312312312 @  12.12.2013,  17:52 Найти цитируемый пост)
    int fib1 = 0, fib2 = 1;
Здесь считается, что fib2 следует за fib1.
Цитата(user12312312312 @  12.12.2013,  17:52 Найти цитируемый пост)
        fib2 = fib1;
        fib1 = fib;
А здесь - что fib1 следует за fib2 в последовательности)))



--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
bsa
Дата 12.12.2013, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



строчку 27 удали полностью.
в строке 16 лучше сделать от 0 до n невключительно. Все-таки, это С, а не Паскаль.
где у тебя вводятся первые элементы ряда и имя выходного файла?

Короче, у тебя в цикле на строке 16 считаются числа Фибоначчи, а в файл пишется из цикла на строке 32 примитивная последовательность. Причем, для последней не определены переменные.

Подумай хорошенько, твой код содержит почти все, что нужно. Надо лишь убрать лишнее, некоторые участки поменять местами и чуть чуть дописать.
PM   Вверх
user12312312312
Дата 12.12.2013, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 12.12.2013

Репутация: нет
Всего: нет



Цитата(feodorv @ 12.12.2013,  17:53)
Цитата(user12312312312 @  12.12.2013,  17:52 Найти цитируемый пост)
for( nc = 0 ; fgetc(f_in)!=EOF ; nc++ ); fseek(f_in, 0, SEEK_SET);
 
 
FILE * file;
file = fopen("output.txt", "w");
for (int i = 0; i<N; i++);
{
fprintf(file, "%d ",b0);
b0 *= q;
}
fclose(file);

Это из какого-то другого задания?



да. но сюда, как я понял, это не подходит
PM MAIL   Вверх
feodorv
Дата 12.12.2013, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



Цитата(user12312312312 @  12.12.2013,  19:04 Найти цитируемый пост)
но сюда, как я понял, это не подходит 

Вы так кусками кода в лего играетесь? Нет, не подходит)))


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
user12312312312
Дата 12.12.2013, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 12.12.2013

Репутация: нет
Всего: нет



Цитата(feodorv @ 12.12.2013,  17:53)
Ну и, конечно, нужен вывод в файл, а не на стандартный вывод. 

А как сделать этот самый вывод?
PM MAIL   Вверх
feodorv
Дата 12.12.2013, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



Цитата(user12312312312 @  12.12.2013,  19:48 Найти цитируемый пост)
А как сделать этот самый вывод? 

Пример у Вас перед глазами из другого задания:
Цитата(user12312312312 @  12.12.2013,  17:52 Найти цитируемый пост)
FILE * file;
file = fopen("output.txt", "w");
...
  fprintf( file, ...);
...
fclose(file);




--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0485 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.