#include <iostream.h>
long fib (int n)
{
if ((n == 0) || (n ==1))
return 1;
else
return (fib (n-1) + fib (n-2));
}
void main()
{
int n = 0;
for ( ; n <= 20; n++)
cout<<" "<<fib(n);
}
Написать программу
Есть готовый текст программы:
Код:
Я не могу разобраться с некоторыми строками. Понятно что последовательность чисел Фибоначчи выражается через F(n-1)+F(n-2). Что означает в этой программе - RETURN, почему со значением 1 (не TRUE ли это и зачем оно здесь)? Можно ли заменить его на другую команду, например через for? Также в 3-ей строке: if ((n == 0) || (n ==1)) Для чего ставится такое условие? И для чего написана функция void? Ведь она не возвращает значение, а main () можно было написать и в начале программы...?
[COLOR="Red"]Читать Правила раздела Студентам и придерживаться их.Оформлять код как полагается.Давать темам осмысленные названия. [/COLOR]
модератор.
Написать программу, которая вводит с клавиатуры одномерный массив из 5 целых чисел и выводит количество ненулевых элементов. Перед вводом каждого элемента на экране должна появляться подсказка с его номером.
Вот что я попробывал. Но не получилось. В чём ошибка? Ведь я расписал ввод (пяти элементов), дальше если счётчик i будет больше нулю то в итоге вывести на экран сколько содержится в массиве ненулевых элементов.
Код:
#include<iostream.h>
main ()
{
int a[5],i,k;
cout<<"Posle vvoda kajdogo chisla, najmite ENTER"<<'\n';
for (i=0;i<5;i++)
{
cin>>a;
}
if (i>0)
{
for (i=0;i<5;i++)
cout<<"nenulevie elementi-"<<a<<'\n';
}}
main ()
{
int a[5],i,k;
cout<<"Posle vvoda kajdogo chisla, najmite ENTER"<<'\n';
for (i=0;i<5;i++)
{
cin>>a;
}
if (i>0)
{
for (i=0;i<5;i++)
cout<<"nenulevie elementi-"<<a<<'\n';
}}
[COLOR="Red"]Не удаляю это сообщение только потому что тебе уже ответили.Получаешь предупреждение.Одна тема - одна задача.[/COLOR]модератор.
ты забыл ";" после первого и второго "}"
p.s. ты забыл ещё: "... Перед вводом каждого элемента на экране должна появляться подсказка с его номером."
Цитата: Ci_novice
Здравствуйте!
Написать программу, которая вводит с клавиатуры одномерный массив из 5 целых чисел и выводит количество ненулевых элементов. Перед вводом каждого элемента на экране должна появляться подсказка с его номером.
Написать программу, которая вводит с клавиатуры одномерный массив из 5 целых чисел и выводит количество ненулевых элементов. Перед вводом каждого элемента на экране должна появляться подсказка с его номером.
Код:
#include <stdio.h>
#include <conio.h>
//---------------------------------------------------------------------------
int main(int argc, char* argv[])
{
int array[5],i;
for(i=0;i<5;i++){
printf("input element %d:",i+1);
scanf("%d",&array);
}
for(i=0;i<5;i++)
if(array!=0)
printf("%d. %d\n",i+1,array);
getch();
return 0;
}
//---------------------------------------------------------------------------
#include <conio.h>
//---------------------------------------------------------------------------
int main(int argc, char* argv[])
{
int array[5],i;
for(i=0;i<5;i++){
printf("input element %d:",i+1);
scanf("%d",&array);
}
for(i=0;i<5;i++)
if(array!=0)
printf("%d. %d\n",i+1,array);
getch();
return 0;
}
//---------------------------------------------------------------------------
Цитата: Ci_novice
...Я не могу разобраться с некоторыми строками. Понятно что последовательность чисел Фибоначчи выражается через F(n-1)+F(n-2). Что означает в этой программе - RETURN, почему со значением 1 (не TRUE ли это и зачем оно здесь)? Можно ли заменить его на другую команду, например через for? Также в 3-ей строке: if ((n == 0) || (n ==1)) Для чего ставится такое условие? И для чего написана функция void? Ведь она не возвращает значение, а main () можно было написать и в начале программы...?
...
...
Подобные вопросы не для форума,для ответа на них есть учебники. Смотри Полезные ссылки раздела Студентам,качай учебник,например Стенли Липпмана по С++ и читай о том что такое функции, возвращаемые значения,что такое функция main и т.д.
По поводу условия if ((n == 0) || (n ==1)) .Это базовый случай.
fibonacci(0) = 0
fibonacci(1) = 1
Так что код такой.
Код:
#include <iostream>
using namespace std;
unsigned long fibon_elem(unsigned long n){
if(n == 0||n == 1)
return n;
else
return fibon_elem(n -1) + fibon_elem(n - 2);
}
int _tmain(int argc, _TCHAR* argv[])
{
for(unsigned int i = 0;i <= 20;++i)
cout<<fibon_elem(i)<<' ';
cout<<endl;
return 0;
}
using namespace std;
unsigned long fibon_elem(unsigned long n){
if(n == 0||n == 1)
return n;
else
return fibon_elem(n -1) + fibon_elem(n - 2);
}
int _tmain(int argc, _TCHAR* argv[])
{
for(unsigned int i = 0;i <= 20;++i)
cout<<fibon_elem(i)<<' ';
cout<<endl;
return 0;
}
void означает что данная функция main() не возвращает никаких переменных.