Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.07.2011, 20:35   #1
vinternete
Пользователь
 
Регистрация: 09.10.2010
Сообщений: 10
Вопрос Упорядочить элементы по возрастанию их кодов.

задача
Дан символьный файл. Упорядочить его элементы по возрастанию их кодов.
1) открыть файл, подсчитать сколько символов. ясно
2) создать динам массив и записать в него элементы .ясно
3) упорядочить по ascii кодам(?)
4)перезаписать в файл. ясно

собственно не понятно как сортировать, пузырьковым методом? и как по коду?
Код:
char str[10],temp;
int i;
for(i=0;i<10;i++)
if(str[i]>str[i+1])
{
temp=str[i];
str[i]=str[i+1];
str[i+1]=temp;
}
так что ли?
vinternete вне форума Ответить с цитированием
Старый 14.07.2011, 08:13   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
собственно не понятно как сортировать, пузырьковым методом? и как по коду?
Угу. раз в условиях задачи не сказано - как сортировать - можете сортировать любым способом.
и порядок действий Вы расписали правильно.

а вот алгоритм сортировки у Вас написан АБСОЛЮТНО неверно!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.07.2011, 08:18   #3
Nedward
Пользователь
 
Регистрация: 26.06.2011
Сообщений: 85
По умолчанию

Ну, лично я за STL
Код:
#include <iostream>
#include <locale>
#include <fstream>
#include <iterator>
#include <vector>
#include <algorithm>

using namespace std;

#define FILE_PATH "d:\\abc\\a.txt"

int main()
{
	setlocale(LC_ALL,"Russian");

	ifstream fi(FILE_PATH);
	vector<char> c;
	for(istream_iterator<char> i(fi);i != istream_iterator<char>();++i)
		c.push_back(*i);
	fi.close();

	//Выводим все символы на экран
	cout << "Мы считали следующие символы:" << endl;
	for(vector<char>::iterator i=c.begin();i!=c.end();++i)
		cout << "\"" << (*i) << "\" ";
	cout << endl;
	
	//Сортируем
	sort(c.begin(),c.end());
	
	//Выводим сортированные символы на экран
	cout << "Отсортированный массив символов выглядит так:" << endl;
	for(vector<char>::iterator i=c.begin();i!=c.end();++i)
		cout << "\"" << (*i) << "\" ";
	cout << endl;

	//переписываем файл
	ofstream fo(FILE_PATH);
	for(vector<char>::iterator i=c.begin();i!=c.end();++i)
		fo << *i;

	return 0;
}
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. (c) Martin Golding
Nedward вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Упорядочить строки массива по возрастанию их сумм Ворожея Помощь студентам 1 26.05.2011 20:54
В матрице nxm (n, m ≥ 10) целых чисел элементы нечетных строк упорядочить по возрастанию, а элементы четн serafimGroup Помощь студентам 1 01.12.2010 16:45
Упорядочить колонки матрицы по возрастанию wlll Помощь студентам 8 27.11.2010 09:06
Упорядочить колонки матрицы по возрастанию wlll Помощь студентам 2 25.11.2010 17:14
Упорядочить по возрастанию элементы.. TemaTim Паскаль, Turbo Pascal, PascalABC.NET 2 16.05.2009 19:00