Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Vktorion
0 / 0 / 0
Регистрация: 12.07.2017
Сообщений: 6
1

Вообще не знаю что это за ошибка , ни разу не случалось , поможете ?

14.07.2017, 16:21. Просмотров 855. Ответов 5
Метки нет (Все метки)

Сделал програму для этого задания
Кликните здесь для просмотра всего текста

=> 1 + 3 + 2 + 1 + 8 + 9
=> 24 ...
=> 2 + 4
=> 6

вылетает с ошибкой "An unhandled exception of type 'System.StackOverflowException' occurred in ConsoleApplication2.exe " и все , в дебаге только код ошибки , не знаю что делать , вот код .
Кликните здесь для просмотра всего текста
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
45
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            long sum2;
            long n = 123;
            long y = 1;
            sum2 = Root(n, y);
            Console.ReadKey();
            
 
        }
        static long Root(long n, long y)
        {
 
        long sum3 = 0;
 
        if (n < y)
        {
            if (n - (n / y) == 0)
            {
                return n / y;
            }
            else
            {
                sum3 = sum3 + n / y;
                return Root(n - (n / y), y);
            }
        }
        else
        {
            y = y * 10;
            return Root(n, y);
        }
        }
}
}
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.07.2017, 16:21
Ответы с готовыми решениями:

Поможете,я просто не знаю как это делать.
Задание: составить блок-схему алгоритма и написать програму,выполняющая следующие действия....

Сравниваем! Знаю что это будет R9 290, но вот какой фирмы не знаю
Ребят вот такой вопрос, на днях покупаю видеокарту, но не знаю какую, точно знаю что это будет R9...


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

Или воспользуйтесь поиском по форуму:
5
FeddeLeGrand
29 / 29 / 18
Регистрация: 09.03.2016
Сообщений: 198
Завершенные тесты: 1
14.07.2017, 16:40 2
Лучший ответ Сообщение было отмечено Vktorion как решение

Решение

из MSDN: StackOverflowException - Исключение, которое выбрасывается при переполнении стека выполнения из-за чрезмерного количества вложенных вызовов метода.

Ты сделал что-то на подобие бесконечного метода

Добавлено через 2 минуты
Не вдумывался в суть задания, но возвращая
C#
1
return Root(..., ...);
Ты заново запускаешь метод Root(), из него снова, в итоге метод никогда не возвратит значение.
1
Даценд
Модератор
Эксперт .NET
5339 / 4498 / 2883
Регистрация: 20.04.2015
Сообщений: 8,145
14.07.2017, 16:40 3
Vktorion,
Выполнение уходит в бесконечную безвыходную рекурсию и переполняется стек.
1
Vktorion
0 / 0 / 0
Регистрация: 12.07.2017
Сообщений: 6
14.07.2017, 17:26  [ТС] 4
Нет тут не бесконечный цикл , в
C#
1
2
3
4
if (n - (n / y) == 0)
            {
                return n / y;
            }
он выходит + тогда будет ошибка max deep
0
Даценд
Модератор
Эксперт .NET
5339 / 4498 / 2883
Регистрация: 20.04.2015
Сообщений: 8,145
14.07.2017, 17:43 5
Цитата Сообщение от Vktorion Посмотреть сообщение
Нет тут не бесконечный цикл
Поставьте точку останова на строке 35 и полюбуйтесь на бесконечный вызов Root при n=123, y=1000
2
LeniumSoft
1446 / 838 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
Завершенные тесты: 1
14.07.2017, 17:44 6
Цитата Сообщение от Vktorion Посмотреть сообщение
Нет тут не бесконечный цикл
Вообще не знаю что это за ошибка , ни разу не случалось , поможете ?


Метод циклично вызывается с параметрами (123, 1000)
2
14.07.2017, 17:44
Ответ Создать тему
Опции темы

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