С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 31.10.2013
Сообщений: 89
1

С восьмеричной системы счисления в десятичную систему счисления

15.12.2014, 19:08. Показов 3279. Ответов 5
Метки нет (Все метки)

Задание:

Дана строка символов. Если он изображен целого числа в восьмеричной системе счисления, то перевести его в целое число в десятичной системе счисления, иначе выдать сообщение о некорректном введении (использовать флажок).

Код:
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
#include "stdafx.h"
 
int Chusla(int a[])
{
    bool flag = true;
    for (int i = 0; i < sizeof(a); i++)
    {
        if (a[i]<0 || a[i]>7)
        {
            flag = false;
            break;
        }
    }
    int s = 0,j=0;
    if (flag == true)
    {
        for (int i = sizeof(a); i > 0; i--)
        {
            int dob = 1;
            for (int k = 1; k <= 8; k++)
            {
                dob *= j;
            }
            s += a[i] * dob;
            j++;
        }
        return s;
    }
    else
        return false;
}
 
int main()
{
    int a[] = {5,3,5,2};
    int res = Chusla(a);
}
Выводит в Watch: 20965, а должно 2794.
Помогите пожалуйста, заранее спасибо.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.12.2014, 19:08
Ответы с готовыми решениями:

Перевод числа из восьмеричной системы счисления в шестнадцатеричную систему счисления
Вот пример числа: 754 = 1EC 1000 = 200

Написать рекурсивный алгоритм перевода из двоичной системы счисления в десятичную ( из восьмеричной и шестнадцатеричной в десятичную)
Написать рекурсивный алгоритм перевода из двоичной системы счисления в десятичную ( из восьмеричной...

Перевод чисел из восьмеричной системы счисления в десятичную
Есть код программы, которая переводит числа из двоичной системы счисления в десятичную, можно ли...

Проблемы с программой перевода из восьмеричной системы счисления в десятичную
Не получается написать программу. для перевода из восьмеричной системы счисления в десятичную....

5
Заблокирован
15.12.2014, 19:35 2
вот просто перевод из 8сс в 10сс:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int translate( char s[] )
{
    int number = 0;
    int k = 1;
    for( int i = strlen( s ) - 1; i >= 0; i--, k *= 8 )
    {
        if ( s[ i ] >= '0' && s[ i ] <= '7' )
            number = number + ( s[ i ] - '0' ) * k;
        else
        {
            std::cout << "Не восьмеричная система счисления!" << std::endl;
            return 0;
        }
    }
    return number;
}
1
0 / 0 / 0
Регистрация: 31.10.2013
Сообщений: 89
15.12.2014, 20:14  [ТС] 3
student_201, Не работает, выводит 0.
0
Заблокирован
15.12.2014, 20:27 4
Лучший ответ Сообщение было отмечено Fox_Yo как решение

Решение

Fox_Yo, как вы вызываете функцию? 0 возвращает из места, где нарушилось + сообщение.

Добавлено через 41 секунду
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
#include <iostream>
#include <string.h>
 
int translate( char s[] )
{
    int number = 0;
    int k = 1;
    for( int i = strlen( s ) - 1; i >= 0; i--, k *= 8 )
    {
        if ( s[ i ] >= '0' && s[ i ] <= '7' )
            number = number + ( s[ i ] - '0' ) * k;
        else
        {
            std::cout << "Не восьмеричная система счисления!" << std::endl;
            return 0;
        }
    }
    return number;
}
 
int main()
{
    std::cout << translate( "23719" ) << std::endl;
    return 0;
}
1
0 / 0 / 0
Регистрация: 31.10.2013
Сообщений: 89
15.12.2014, 20:28  [ТС] 5
student_201, Спасибо большое, но я сам переделал свою, тоже работает
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
// Лаба 6 ГДК2.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
 
int Chusla(int a[])
{
    bool flag = true;
    for (int i = 0; i < sizeof(a); i++)
    {
        if (a[i]<0 || a[i]>7)
        {
            flag = false;
            break;
        }
    }
    int s = 0,j=0;
    if (flag == true)
    {
        int size = ((sizeof(a)) - 1);
        for (int i = size; i >= 0; i--)
        {
            int dob = 1;
            for (int k = 0; k < j; k++)
            {
                dob *= 8;
            }
            s = s + a[i] * dob;
            j++;
        }
        return s;
    }
    else
        return false;
}
 
int main()
{
    int a[] = {5,3,5,2};
    int res = Chusla(a);
}
0
Заблокирован
15.12.2014, 20:29 6
Вот для массива:
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
#include <iostream>
#include <string.h>
 
int translate( int *a, int n )
{
    int number = 0;
    int k = 1;
    for( int i = n - 1; i >= 0; i--, k *= 8 )
    {
        if ( a[ i ] >= 0 && a[ i ] <= 7 )
            number = number + a[ i ] * k;
        else
        {
            std::cout << "Не восьмеричная система счисления!" << std::endl;
            return 0;
        }
    }
    return number;
}
 
int main()
{
    int a[] = { 1, 5, 2, 7 };
    int size = sizeof( a ) / sizeof( *a );
    std::cout << translate( a, size ) << std::endl;
 
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.12.2014, 20:29

Перевод чисел из системы остаточных классов в десятичную систему счисления
Братья, нужна помощь по переводу чисел из системы остаточных классов в десятичную систему...

Простейший алгоритм перевода числа из 10 системы счисления в 16 ричную систему счисления
Помогите написать самый простой алгоритм перевода из 10 системы счисления в 16 ричную систему...

Перевод числа из 8-ичной системы счисления в 16-ричную систему счисления и обратно.
Написать программу на С++. Перевод из 8 системы счисления в 16 систему счисления и обратно из 16...

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru