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

перевод из 10сс в 16сс - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Бинарный поиск http://www.cyberforum.ru/cpp-beginners/thread102002.html
Каким образом выполнить бинарный поиск определнного значения в отсортированном массиве?
C++ нужно выбрать тему курсовой! Нужно выбрать тему курсовой работы..нужно написать какое либо приложение на С++ использую принципы ООП не заню какое приложение написать... чтоб и не очень сложно и не очень просто...подскажите http://www.cyberforum.ru/cpp-beginners/thread101992.html
C++ Из double сделать целое число, ОКРУГЛИВ его
у меня есть число 173.93939 как его вывести на экран округленным? т.е. 174 язык С++, компилятор VIsual Studio 2008
Циклы,Оператор выбора C++
Почему не работает оператор выбора? Где ошибка? //--------------------------------------------------------------------------- #include <stdio.h> #include <math.h> #include <conio.h> #include <vcl.h> //--------------------------------------------------------------------------- int main()
C++ Преобразование числа в строку!!!! http://www.cyberforum.ru/cpp-beginners/thread101965.html
Как в VS преобразовать число в строку!!! Через itoa что-то не выходит!!!
C++ Вопрос по Microsoft Visual C++ Express Edition Нуждаюсь в помощи так как решают куда меня отправит у меня 6ч осталось что бы доказать Отцу что я боле меня шарю в IT. тут у меня программа установлена Miicrosoft Visual C++ Express Edition Я в ней не работал и она для меня новое как мне запустит ее если я уже написал код если можно в покажи в (принскрипте ) спасибо Добавлено через 3 минуты ребята кто может показать в... подробнее

Показать сообщение отдельно
Nick888
Сообщений: n/a
09.03.2010, 17:07     перевод из 10сс в 16сс
Есть парочка, завтра приду домой выложу. Работает, но только глючно, переводит все символы, в том числе и буквы, что как раз и не надо, цифры переводит, но не правильно.

Добавлено через 13 часов 19 минут
Собственно вот:


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
#include <iostream>
using namespace std;
#include <stdio.h>
 
void find(int s[],int B[]) 
{int i,n,m=0,j,a;
for (i=0; s[i]!=0; i++) //цикл просматривает массив
{ if (s[i]>='0' && s[i]<='9') 
{ 
n = s[i];
B[m++]=' ';
for (int nn=n; nn!=0; m++, nn/=16); //Подсчет количества цифр числа
for (j=m-1; n!=0; j--, n/=16) // Получение цифр числа
{
a=n%16; //получение цифр в обратном порядке
if(a<10) B[j]=a+'0'; //Перевод в 16СС до 10
else B[j]=a-10+'A'; //Перевод в 16СС от 10 
}
n=0; B[m++]=' ';
}
else B[m++]=s[i];  
}
B[m++]=0;} 
 
void main(){
    int s[];
    gets (s);
    int B[100];
    find(s, B);
    printf("%s\n", B);
} //вывод обновлённого символьного массива
Добавлено через 10 секунд

Добавлено через 10 часов 14 минут
Гляньте пожалуйста, может найдёте мои ошибки.

Добавлено через 20 часов 54 минуты
Вот исправленный вариант, проблема только в одном, он считает каждый символ, т.е. 258 и разбивает на 2, 5, 8 и считает, а надо что бы считал, как 258.
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
#include <iostream>
using namespace std;
#include <stdio.h>
 
void find(char s[],char B[]) 
{int i,n,m=0,j,a;
for (i=0; s[i]!=0; i++) //цикл просматривает массив
{ if (s[i]>='0' && s[i]<='9') 
{ 
n = s[i];
B[m++]=' ';
B[m++]='0';
B[m++]='x';
for (int nn=n; nn!=0; m++, nn/=16); //Подсчет количества цифр числа
for (j=m-1; n!=0; j--, n/=16) // Получение цифр числа
{
a=n%16; //получение цифр в обратном порядке
if(a<10) B[j]=a+'0'; //Перевод в 16СС до 10
else B[j]=a-10+'A'; //Перевод в 16СС от 10 
}
n=0; B[m++]=' ';
}
else B[m++]=s[i];  
}
B[m++]=0;} 
 
void main(){
    char s[100];
    gets (s);
    char B[100];
    find(s, B);
    printf("%s\n", B);
} //вывод обновлённого символьного массива
 
Текущее время: 16:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru