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

Масив принимает в 16-ричной, а выдаёт в 10-ричной - C++

Восстановить пароль Регистрация
 
Boderman
 Аватар для Boderman
3 / 3 / 3
Регистрация: 25.03.2013
Сообщений: 140
02.04.2013, 01:22     Масив принимает в 16-ричной, а выдаёт в 10-ричной #1
Народ подскажите в чом может быть проблема ?

Задание :Дан массив чисел размерностью 10 элементов. Написать функцию, которая сортирует массив по возрастанию или по убыванию, в зависимости от третьего параметра функции. Если он равен 1, сортировка идет по убыванию, если 0, то по возрастанию. Первые 2 параметра функции - это массив и его размер, третий параметр по умолчанию равен 1.

Вопрос: У меня массив изначально выдаёт значение в 16-ричной системе, но вот значения обратные выдаёт в десятичной.Вопрос в следующем где ошибка иза которой массив выдаёт мне числа в 16-ричной системе?(Числа до функции и после должны быть в десятичной )

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
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <iostream>
#include <windows.h>
#include <stdlib.h>
#include <time.h>
using namespace std;
template <typename A>
A Ram_1 (A a[],const int size,int key)
{A x=0;
    int i, j, k; 
    switch (key)
    {case 1: for(i=0;i<size;i++){            // i - номер прохода
        for(j=size-1;j>i;j--){     // внутренний цикл прохода
            if(a[j-1]<a[j]){
                x=a[j-1];
                a[j-1]=a[j];
                a[j]=x;
            }
        }
    }
 
 
 break;
case 0: for(i=0;i<size;i++) { k=i; x=a[i];
       for(j=i+1;j<size;j++)    
            {if(a[j]<x){k=j; x=a[j];}
        a[k]=a[i];
        a[i]=x;     
    }
} break;}
cout<<"Ваш массив отсортирован :\n";
for (int i=0;i<size;i++)
{cout<<a[i]<<"\n";}return 0;}
 
void main()
{srand (time(NULL));
setlocale (LC_ALL,"Russian");
const int size=10;
int array_1[size];
int key=1;
cout<<"Эсли вы желаэте отминить сортировку по умолчанию нажмите: Y ";
char a='N';
cin>>a;
if (a=='Y'){cout<<"Выбирите как вы хотите отсортировать массив : 1- по убыванию, 0-по возростанию";cin>>key;}
for (int i=0;i<size;i++)
{array_1[i]=rand()%20;system ("pause");}
cout<<"Ваш массив состоит из таких елементов:\n";
for (int i=0;i<size;i++)
{cout<<array_1<<"\n";}
 
Ram_1(array_1,size,key);
 
 
 
system ("pause");}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2013, 01:22     Масив принимает в 16-ричной, а выдаёт в 10-ричной
Посмотрите здесь:

Вывод числа в 16-ричной форме C++
Как перевести число из 5-ричной в 9-ричную? C++
C++ Перевод из 16-ричной СС в 10
Функция перевода из 10-ричной СС в 80-ричную СС C++
C++ Перевод из 6-ричной системы в десятичную
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
korep
 Аватар для korep
47 / 40 / 9
Регистрация: 06.01.2013
Сообщений: 566
02.04.2013, 01:29     Масив принимает в 16-ричной, а выдаёт в 10-ричной #2
посмотрите параметры "/буква" вероятно для вывода в 16-ричном виде необходимо ставить другую букву
Venzo
 Аватар для Venzo
125 / 123 / 4
Регистрация: 03.07.2011
Сообщений: 354
02.04.2013, 01:30     Масив принимает в 16-ричной, а выдаёт в 10-ричной #3
C++
1
cout<<array_1<<
так вы печатаете адрес первого элемента массива. нужно cout << array_1[i];
korep
 Аватар для korep
47 / 40 / 9
Регистрация: 06.01.2013
Сообщений: 566
02.04.2013, 01:31     Масив принимает в 16-ричной, а выдаёт в 10-ричной #4
на крайний случай формируйте не массив чисел в 16 виде, а массив ссылок и сортируйте адреса к ячейкам, так же может помочь
Boderman
 Аватар для Boderman
3 / 3 / 3
Регистрация: 25.03.2013
Сообщений: 140
02.04.2013, 03:17  [ТС]     Масив принимает в 16-ричной, а выдаёт в 10-ричной #5
Цитата Сообщение от Venzo Посмотреть сообщение
C++
1
cout<<array_1<<
так вы печатаете адрес первого элемента массива. нужно cout << array_1[i];
Точно !!!! Спасибо большое !
Yandex
Объявления
02.04.2013, 03:17     Масив принимает в 16-ричной, а выдаёт в 10-ричной
Ответ Создать тему
Опции темы

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