Форум программистов, компьютерный форум 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...
C++ Преобразование числа в строку!!!! http://www.cyberforum.ru/cpp-beginners/thread101965.html
Как в VS преобразовать число в строку!!! Через itoa что-то не выходит!!!
C++ Вопрос по Microsoft Visual C++ Express Edition Нуждаюсь в помощи так как решают куда меня отправит у меня 6ч осталось что бы доказать Отцу что я боле меня шарю в IT. тут у меня программа установлена Miicrosoft Visual C++ Express Edition Я... подробнее

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

Добавлено через 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);
} //вывод обновлённого символьного массива
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru