Форум программистов, компьютерный форум CyberForum.ru

Непонятные ошибки в работе (системы счисления) - C++

Восстановить пароль Регистрация
 
nikita00791
0 / 0 / 0
Регистрация: 20.01.2013
Сообщений: 4
20.01.2013, 21:43     Непонятные ошибки в работе (системы счисления) #1
Всем хеллоу, у меня такая проблемка хочу написать программу, которая переводит в различные системы счисления... Я ее еще не дописал, но скелет уже есть. Вот он:
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
#include <iostream>
using namespace std;
const int MAX = 99999999;
void notation(int, int) ;
 
void main()
{
    int sysIs,num;
    setlocale(LC_ALL, "Russian"); 
    cout << "Введите декартовое число: ";
    cin >> num;
    cout << "Введите основание системы счисления: ";
    cin >> sysIs;
    notation(num, sysIs);
    system("pause");
}
 
void notation(int num, int sysIs)
{
    int i=0,j;
    int ans[MAX];
    while (num/sysIs) 
    {
        ans[i] = num%sysIs;
        i++;
    }
    i--;
    for (j=i;j<=0;j--)
    {   
        cout << ans[j];
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2013, 21:43     Непонятные ошибки в работе (системы счисления)
Посмотрите здесь:

C++ непонятные ошибки
C++ Непонятные ошибки
C++ Непонятные ошибки компиляции!!!!
C++/CLI WinForms Необработанное исключение типа "System.StackOverflowException"
Непонятные ошибки C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nonedark2008
624 / 502 / 92
Регистрация: 28.07.2012
Сообщений: 1,343
20.01.2013, 21:50     Непонятные ошибки в работе (системы счисления) #2
Дело в том что системе не удается выделить массив на
Цитата Сообщение от nikita00791 Посмотреть сообщение
99999999
элементов, их слишком много, массив создается в стеке, а он ограничен, поэтому и возникает ошибка опереполнении стека. Используй для этого дела списки.

Добавлено через 2 минуты
Ну, а если пофиг на списки, то просто массив нужно выделять динамически: int *ans = new int[MAX]; и не забуль в конце delete[] ans;
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
20.01.2013, 21:54     Непонятные ошибки в работе (системы счисления) #3
И еще немного,
вот это:
Цитата Сообщение от nikita00791 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void notation(int num, int sysIs)
{
* * int i=0,j;
* * int ans[MAX];
* * while (num/sysIs) 
* * {
* * * * ans[i] = num%sysIs;
* * * * i++;
* * }
* * i--;
* * for (j=i;j<=0;j--)
* * { * 
* * * * cout << ans[j];
* * }
}
заменить на:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void notation(int num, int sysIs)
{
    int i=0,j;
    int ans[MAX];
    while (num/sysIs) 
    {
        ans[i] = num%sysIs;
        i++;
        num/=sysIs;
    }
    ans[i] = num%sysIs;;
    for (j=i;j>=0;j--)
    {   
        cout << ans[j];
    }
}
nikita00791
0 / 0 / 0
Регистрация: 20.01.2013
Сообщений: 4
20.01.2013, 22:10  [ТС]     Непонятные ошибки в работе (системы счисления) #4
Так вот эта программа дает какие-то сбои, я вообще не понимаю что за фигня:http://s006.***********/i214/1301/18/6ff66c63220f.jpg

Добавлено через 14 минут
Ооо...) спасибо подправил, поржал над глупыми ошибками)) А вот насчет переполнения не знал)
Yandex
Объявления
20.01.2013, 22:10     Непонятные ошибки в работе (системы счисления)
Ответ Создать тему
Опции темы

Текущее время: 04:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru