Дано натуральное число n. Выведите все числа от 1 до n. Вот , что выходит. Где ошибка?
int func(int );
int main()
{
int n;
cout << "n=";
cin >> n;
for (int i = 1; i <=n; i++)
{
cout << i << " ) " << func(n) << "\n";
}
system("pause");
return 0;
}
int func(int n)
{
if (n == 1)
return 1;
return func(n - 1);
}
Данная функция
int func(int n)
{
if (n == 1)
return 1;
return func(n - 1);
}
всегда для значений больше 0 возвращает 1, так как это как раз условие выхода из рекурсии. А для значений меньше 0 имеет неопределенное поведение.:)
Кроме того, если в задании говорится о натуральном ряде чисел, то следует объявлять соответствующую переменную или параметр функции, как имеющий без-знаковый целый тип.
А также в вашем задании имеется в виду, что циклы не будут использоваться. Все должна сделать функция, рекурсивно выводя значения от 1 до n
.
Все, что от вас требуется, это следующее
#include <iostream>
void func(unsigned int n)
{
if (n)
{
func(n - 1);
std::cout << n << std::endl;
}
}
int main()
{
unsigned int n;
std::cout << "n = ";
if (std::cin >> n && n != 0) func(n);
}
Вывод программы может выглядеть к примеру так
n = 5
1
2
3
4
5
Все проще:
void out(int n)
{
if (n > 1) out(n-1);
cout << n << endl;
}
int main(int argc, const char * argv[])
{
int n;
out((cout<<"n = ", cin >> n, n));
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Как можно включить отображение горизонтального ScrollBar в QTreeView с фиксированной шириной при выходе названия ветки за границы view'шки?
Пишу запрос на выборку ТОП-10 покупателейВывести покупателей за все время я смог запросто, но встал вопрос о сортировке по дате
Как сделать так, чтобы выдвижная панель выезжала на всю высоту экрана (высоту, а не ширину, с шириной все ясно)Я имею ввиду, чтобы она заезжала...