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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
AlexArt
0 / 0 / 0
Регистрация: 27.10.2010
Сообщений: 11
#1

Системы счисления (есть ошибка) - C++

28.12.2011, 00:03. Просмотров 340. Ответов 7
Метки нет (Все метки)

Начал учить си. Захотел написать конвертер.
В итоге такая проблемка: переменная k при создании массива работать должна как счетчик. При выводе массива остатков от деления в обратном порядке, k должен быть номером ячейки отсчета, но почемуто ей присваивается ноль ?
ЗЫ Сто пудов ошибка в элементарном))))
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream.h>
int main(){
    int n,k=0;
    cout<<"Vvedite DEC chislo: ";
    cin>>n;
    int mass[100];
    for (int i=0;i<=100;i++){
            mass[i]=n%2;
            n/=2;
            k++;
        }
    for (i=k;i>=0;i--){
        cout<<mass[i]<<" ";
        }
    
    cout<<"\n\n";
    return 0;
}
Добавлено через 41 минуту
Даже если ради эксперимента присвоить k 10, в итоге выводит 1... почему?
Ведь с моменкт присваивания, до момента вывода ничего не происходит с k...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream.h>
int main(){
    int n,k=10;
    cout<<"Vvedite DEC chislo: ";
    cin>>n;
    int mass[100];
    for (int i=0;i<=100;i++){
            mass[i]=n%2;
            n/=2;
        }
    cout<<endl<<k<<endl;
    for (i=7;i>=0;i--){
        cout<<mass[i]<<" ";
        }
    
    cout<<"\n\n";
    return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2011, 00:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Системы счисления (есть ошибка) (C++):

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

Простейший алгоритм перевода числа из 10 системы счисления в 16 ричную систему счисления - C++
Помогите написать самый простой алгоритм перевода из 10 системы счисления в 16 ричную систему счисления! Мне нужен именно самый простенький...

Программа обучения переводу чисел из десятичной системы счисления в 2 10 и 16 систем счисления - C++
дали задание составить программу нужно чтобы на экран выводилось это: Программа обучение переводу чисел из десятичной систем...

Перевод строки из 2-ной системы счисления в 8-ную систему счисления - C++
помогите пожалуйста как сделать перевод строки из 2 системы счисления на 8 систему счисления через массив ?

Написать программу, которая переводит число из десятичной системы счисления в позиционную систему счисления - C++
Помогите написать программу, которая переводит число из десятичной системы счисления в позиционную систему счисления. Цифра в самом младшем...

Написать рекурсивную функцию перевода целого числа из десятичной системы счисления в 9 систему счисления C++ - C++
Написать рекурсивную функцию перевода целого числа из десятичной системы счисления в 9-чную систему счисления.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Байт
Эксперт C
16062 / 10331 / 1540
Регистрация: 24.12.2010
Сообщений: 19,470
28.12.2011, 00:15 #2
Цитата Сообщение от AlexArt Посмотреть сообщение
for (i=k;i>=0;i--){
Попробуй
C
1
for (i=k-1;i>=0;i--){
Ведь счет в Си начинается с нуля...
0
AlexArt
0 / 0 / 0
Регистрация: 27.10.2010
Сообщений: 11
28.12.2011, 00:22  [ТС] #3
Я в начале k=0, но после цикла for, где на каждом проходе к k должна прибовляться 1 ( работает как счетчик) ...происходит, непонятная мне ошибка, и к моменту вывода массива к==1, хртя должно быть равно кол-ву проходов... так что к-1 вообще ничего не дает...
0
Байт
Эксперт C
16062 / 10331 / 1540
Регистрация: 24.12.2010
Сообщений: 19,470
28.12.2011, 00:30 #4
Цитата Сообщение от AlexArt Посмотреть сообщение
for (int i=0;i<=100;i++){
i<100. А так ты залезаешь вне mass, а там как раз твой k и затаился...
И вообще, цикл надо кончать, когда n == 0
C
1
 if (!n) break;
0
AlexArt
0 / 0 / 0
Регистрация: 27.10.2010
Сообщений: 11
28.12.2011, 00:33  [ТС] #5
я ввожу k, чтоб убрать ненужные нули перед двоичным числом
0
Миниатюры
Системы счисления (есть ошибка)  
Байт
Эксперт C
16062 / 10331 / 1540
Регистрация: 24.12.2010
Сообщений: 19,470
28.12.2011, 00:37 #6
AlexArt, Прочитай внимательнее мой предыдущий пост. Даже если ничего не поймешь, поставь
i < 100 Поверь нюху старой собаки.
И имей в виду, что твой цикл выполняется ровно 101 раз.
1
AlexArt
0 / 0 / 0
Регистрация: 27.10.2010
Сообщений: 11
28.12.2011, 00:42  [ТС] #7
Цитата Сообщение от Байт Посмотреть сообщение
AlexArt, Прочитай внимательнее мой предыдущий пост. Даже если ничего не поймешь, поставь
i < 100 Поверь нюху старой собаки.
И имей в виду, что твой цикл выполняется ровно 101 раз.
Пока писал свой пост, не заметил твой
Всё работает в таком виде:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream.h>
int main(){
    int n, k=0;
    cout<<"Vvedite DEC chislo: ";
    cin>>n;
    int mass[100];
    for (int i=0;i<100;i++){
            mass[i]=n%2;
            n/=2;
            k++;
            if (!n) break;
        }
        
    for (i=k-1;i>=0;i--){
        cout<<mass[i]<<" ";
        }
    cout<<endl;
    return 0;
}
Большое спасибо! Щас буду разбираться в причине... всё равно не до конца понял
0
Байт
Эксперт C
16062 / 10331 / 1540
Регистрация: 24.12.2010
Сообщений: 19,470
28.12.2011, 00:52 #8
AlexArt, Мой совет. Возьми небольшое число, скажем 10. И сделай вид что ты - компутер. Прогони свою прожку РУКАМИ. Вот i стало такое, mass[0] - такое, n - такое. Цикл продолжается? и тд.
Поверь мне, помогает не только разобраться в конкретной задаче, но и вообще понять, как работают конструкции...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2011, 00:52
Привет! Вот еще темы с ответами:

Перевод чисел из двоичной системы счисления в систему счисления кратной степеням двойки и обратно - C++
Нужно две программы, одна реализует перевод чисел из двоичной системы счисления в систему счисления кратной степеням двойки, а другая...

Перевод чисел из 16 системы счисления в 2 систему счисления - C++
Помогите составить программу для перевод чисел из 16 с/c в 2 c/c при условии,что программ может переводить и дробные числа.

С восьмеричной системы счисления в десятичную систему счисления - C++
Задание: Дана строка символов. Если он изображен целого числа в восьмеричной системе счисления, то перевести его в целое число в...

Системы счисления - C++
Умные люди помогите пожалуста написать програму на С++ для превода целого двуичного числа в шестнадчетиричное. Желательно посредством...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
28.12.2011, 00:52
Ответ Создать тему
Опции темы

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