fin number



Автор Иван Ларин задал вопрос в разделе Другие языки и технологии

Помогите пожалуйста решить, С++ и получил лучший ответ

Ответ от Cyborg Terminator[гуру]
Вот набросал с использованием хэш-таблицы, а во избежание коллизий реализованы цепочки в виде односвязного списка.
#include <fstream>
#define NUM 128
struct cell {
int key;
cell* next;
};
bool insert_cell(cell* htab[NUM], int key);
void clear_cell(cell* htab[NUM]);
int main(void){
cell* htab[NUM] = {0};
std::ifstream fin("number.txt");
if(! fin.is_open())
return 1;
int num;
while(fin >> num){
insert_cell(htab, num);
}
fin.close();
//...
std::ofstream fout("output.txt");
for(int i = 0; i < NUM; ++i){
for(const cell* p = htab[i]; p != NULL; p = p->next)
fout << p->key << ' ';
}
fout.flush();
fout.close();
clear_cell(htab);
return 0;
}
//вставка в хэш-таблицу
bool insert_cell(cell* htab[NUM], int key){
int ikey = ((key < 0) ? ~key : key) % NUM;
for(const cell* p = htab[ikey]; p != NULL; p = p->next){
if(p->key == key)
return false;
}
cell* node = new cell();
if(node != NULL){
node->key = key;
node->next = htab[ikey];
htab[ikey] = node;
}
return (node != NULL);
}
//удаление всех ячеек хэш-таблицы
void clear_cell(cell* htab[NUM]){
cell* t;
for(int i = 0; i < NUM; ++i){
for(cell* p = htab[i]; p != NULL; ){
t = p;
p = p->next;
delete t;
}
}
}

Ответ от Николай Веселуха[гуру]
#include <iostream> #include <fstream>#include <list>#include <algorithm>using namespace std;int main() { system("chcp 1251 > nul"); ifstream ifs("numbers.txt", ifstream::in); try { if (!ifs) throw runtime_error("numbers.txt"); int number; list<int> numbers; while (ifs >> number) numbers.push_back(number); ofstream ofs("unique.txt", ofstream::out); numbers.sort(); numbers.unique(); try { if (!ofs) throw runtime_error("unique.txt"); while (!numbers.empty()) { ofs << numbers.front(); numbers.pop_front(); if (!numbers.empty()) ofs << ' '; else ofs << '\n'; } ofs.close(); } catch (runtime_error const& e) { cerr << L" Ошибка: Не удаётся записать в файл " << e.what() << endl; ofs.close(); cin.sync(); cin.get(); return -2; } ifs.close(); } catch (runtime_error const& e) { cerr << "\a Ошибка: Не удалось открыть файл " << e.what() << endl; ifs.close(); cin.sync(); cin.get(); return -1; } return 0;}P.S. Если порядок следования элементов не имеет значения

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Помогите пожалуйста решить, С++
спросили в FMA Fun
У кого нибудь есть текст "number one fan" Билана? Дайте, пли-и-и-з!!!
Дима Билан - Number One Fan

They call me Dima Bilan...
...

Love at first
подробнее...
спросили в Музыка FMA
У кого-нибудь есть текст песни Димы Билана "Number one fan"?
DIMA BILAN – NUMBER ONE FAN

Love at first sight
I‘ve been watching you all night
What
подробнее...
спросили в Музыка
Кто знает перевод песни Number One Fun Димы Билана?
я знаю))мне 10 баллов,плиз)

Они зовут меня Дима Билан...

Любовь с первого
подробнее...
спросили в Музыка Come On Over
You never give me your money: you only give me your funny paper
I never give you my number,
I only give you my situation,
And in the middle of investigation
подробнее...
спросили в Каникулы Champ Car
нужен топик по англискому на тему "мои каникулы" не сложный
1. My Summer Holidays (Мои летние каникулы)
Most people like to leave their places on holidays.
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:
спросили в Музыка Sket Dance
Кто знает слова песни Дима Билана № 1?
я
ша скину

They call me Dima Bilan...
...

Love at first sight
I've been
подробнее...
спросили в Музыка
как называется новая песня д. билана?
» билан - number_one_fan_studio
» Билан Д - летите, летите
» Билан Дима - Never Let U Go &
подробнее...

люди, пришлите лицензионный ключ для ACDSee 8
Попробуй это 1)While installing the application choose "Full" and enter the serial number
подробнее...
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*