Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сделать массив числом, Перевести массив из 1500 элемент в число 
:(
    Опции темы
Nett
Дата 20.5.2008, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 20.5.2008

Репутация: нет
Всего: 1



Помогите пожалуйста, есть такая задачка реализовать надо на C++:
Дан массив из 1500 элементов, он заполняется случайным образом числами от 0 до 9, затем оттуда нужно отфильтровать цифру 7, и после отсортировать(по возрастанию), это конечно всё легко, но вот последнее условие, нужно теперь полученный массив преобразовать (превратить) в число (должно получится одно здоровенное число типа double или подобного типа) и вывести его.
Всё это на консоли.
PM MAIL WWW   Вверх
anatox91
Дата 20.5.2008, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


программист-самоучка
**


Профиль
Группа: Участник
Сообщений: 699
Регистрация: 12.1.2008
Где: ++Украина.Крым++

Репутация: 1
Всего: 13



в смысле сложить все элементы массива?


--------------------

The code is the design ©

Sony VAIO VGN-FW480J

user posted image
PM MAIL ICQ   Вверх
Nett
Дата 20.5.2008, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 20.5.2008

Репутация: нет
Всего: 1



нет, вот к примеру есть массив [1 1 1 1 2 2 2 3 3 3 3 3 ... и так далее до 9], теперь надо его вывести одним числом, что б получилось 111122233333...
вот так, не могу понять как это сделать, во всех типах данных получается переполнение.
PM MAIL WWW   Вверх
anatox91
Дата 20.5.2008, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


программист-самоучка
**


Профиль
Группа: Участник
Сообщений: 699
Регистрация: 12.1.2008
Где: ++Украина.Крым++

Репутация: 1
Всего: 13



поиск рулит  smile
т.е. преобразовываешь в  char* (например функция itoa()), складываешь все в одну строку и на вывод

Это сообщение отредактировал(а) anatox91 - 20.5.2008, 20:49


--------------------

The code is the design ©

Sony VAIO VGN-FW480J

user posted image
PM MAIL ICQ   Вверх
Nett
Дата 20.5.2008, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 20.5.2008

Репутация: нет
Всего: 1



в том то и дело, что не должно быть не char и не string, а числовой тип данных...double, floate, int , но это число туда не влазит, переполнение получается. Мне намекнули что надо работать с дробной частью, а как это сделать???
PM MAIL WWW   Вверх
mes
Дата 20.5.2008, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(Nett @  20.5.2008,  18:57 Найти цитируемый пост)
Дан массив из 1500 элементов

минимально получается 1500 байтов..

Цитата(Nett @  20.5.2008,  20:56 Найти цитируемый пост)
 том то и дело, что не должно быть не char и не string, а числовой тип данных...double, floate, int , но это число туда не влазит, переполнение получается. 


ну а стандартные типы максимально вмешают в себя 8 байт ))

интересно как слона запихнуть в норку для мышки??


Это сообщение отредактировал(а) mes - 20.5.2008, 21:09


--------------------
PM MAIL WWW   Вверх
Nett
Дата 20.5.2008, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 20.5.2008

Репутация: нет
Всего: 1



Так подскажите, что же делать???? Надо прогу такую очень сильно...
Можно как-то это значение поместить в вещественное число, но после запятой? как бы 0,1112223344445....
PM MAIL WWW   Вверх
anatox91
Дата 20.5.2008, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


программист-самоучка
**


Профиль
Группа: Участник
Сообщений: 699
Регистрация: 12.1.2008
Где: ++Украина.Крым++

Репутация: 1
Всего: 13



а если сначала сделать строку из всех чисел массива, затем в начало этой строки добавить ноль с запятой и затем привести к числу с плавающей точкой?


--------------------

The code is the design ©

Sony VAIO VGN-FW480J

user posted image
PM MAIL ICQ   Вверх
mes
Дата 20.5.2008, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата

Можно как-то это значение поместить в вещественное число, но после запятой? как бы 0,1112223344445
можно.. но большая часть информации потеряется

Добавлено через 2 минуты и 15 секунд
я все таки склоняюсь к тому, что задание неправильно понято... нельзя ли уточнить у того, кто его задал, что подразумевается?


Это сообщение отредактировал(а) mes - 20.5.2008, 21:26


--------------------
PM MAIL WWW   Вверх
Nett
Дата 20.5.2008, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 20.5.2008

Репутация: нет
Всего: 1



Данное мне задание я изложил правильно... Я перед тем как его брать раз 10 всё переспросил.
Помогите хоть как-то решить эту задачку.
PM MAIL WWW   Вверх
Carnifex
  Дата 20.5.2008, 21:35 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 1.5.2008

Репутация: нет
Всего: нет



Код

cout<<"Число:"<<endl;
for(int i=0;i<arr_size;i++){
  cout<<array[i];
}
cout<<endl;

Серьёзно, по другому не выйдет.
PM MAIL   Вверх
Nett
Дата 20.5.2008, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 20.5.2008

Репутация: нет
Всего: 1



это просто вывод, через for() не катит...
вот код который я написал:
Код

#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
#include <math.h>
using namespace std;
#define MIN            0
#define MAX            9
#define ARR_SIZE    20
int arr[ARR_SIZE],count,mass[ARR_SIZE],j,tmp;
double num;
char ans;

int main(void)
{
 do{
     cout << "Massiv iz 16 elementov v diapazone ot 0 do 9: \n";
 count=0;
 num=0;
 j=0;
 srand(time(NULL));
 for(int i=0; i<ARR_SIZE; i++)
 {
  //arr[i]=rand()%10;
     arr[i] = ( rand()%(MAX-MIN+1)+(MIN-0));
  cout << arr[i] << " ";
  if(arr[i] != 7)
  {
   count++;
   mass[j]=arr[i];
   j++;
   //cout << arr[i] << " ";
  }
 }
 tmp = mass[0];
 for(int i=0;i< count - 1;i++)
 {
      for (int k = 0; k < count - 1; k++)
      {
      if (mass[k] > mass[k + 1])
      {
           tmp = mass[k];
           mass[k] = mass[k + 1];
           mass[k + 1] = tmp;
      }
 }
 }
 cout << "\n" << "\n";
 cout << "Otsortirovannij massiv :" << "\n";
 for(int i=0;i<count;i++)
 {
      cout<<mass[i]<<" ";
 }
cout << "\n" << "4isel bez 7:" << count << "\n";
cout << "massiv - 4islo" << "\n";

for (int i=0; i<count; i++)
{
    //num = num * 10 + mass[i];
    num = num + mass[i]*pow(MAX+1, (double)i);
}
//cout << num << "\n";
printf("\nnum:\n%.20lf\n", num);
cout <<"Povtorit6 ? (y/n)"<< "\n";
ans = getchar();
cin >> ans;
     }
      while ((ans=='y')||(ans=='Y'));
 return 0;
}


M
JackYF
Пользуемся кнопкой "Код".


Это сообщение отредактировал(а) JackYF - 21.5.2008, 14:45
PM MAIL WWW   Вверх
Lazin
Дата 20.5.2008, 22:01 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 27
Всего: 154



Цитата(Nett @  20.5.2008,  21:12 Найти цитируемый пост)
Так подскажите, что же делать???? Надо прогу такую очень сильно...
Можно как-то это значение поместить в вещественное число, но после запятой? как бы 0,1112223344445....

неполучится, во первых даже после запятой полторытыщи знаков получить нереально... во вторых мантисса кодируется с помощью такого ряда - m = k1*1/2 + k2*1/4 +k3*1/8 +... k1 k2 .. - это биты мантисы 
в общем человек который дал такое задание кое чего непонимает smile 

зы
если у тебя получится, то считай что ты сделал самый крутой архиватор в истории smile 
PM MAIL Skype GTalk   Вверх
mes
Дата 21.5.2008, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



если рассматривать текстовой режим ДОС 80х25 то полностью забитый экран вмешает всего 2000 символов  smile - привел для сравнения, чтоб можно было представить длину желаемой цепочки   smile 



--------------------
PM MAIL WWW   Вверх
xvr
Дата 21.5.2008, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Цитата(Nett @ 20.5.2008,  18:57)
Помогите пожалуйста, есть такая задачка реализовать надо на C++:
Дан массив из 1500 элементов, он заполняется случайным образом числами от 0 до 9, затем оттуда нужно отфильтровать цифру 7, и после отсортировать(по возрастанию), это конечно всё легко, но вот последнее условие, нужно теперь полученный массив преобразовать (превратить) в число (должно получится одно здоровенное число типа double или подобного типа) и вывести его.
Всё это на консоли.

Если число нужно целое, то достаточно просто поскипать лидирующие нули а остальное вывести как есть. Не надо ничего никуда переводить. Можешь считать, что у тебя в массиве уже хранится число в позиционной десятичной системе счисления.
Если нужен double, то у тебя было написано правильно:
Код

for (int i=0; i<count; i++)
{
    num = num * 10 + mass[i];
}

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0568 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.