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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2011, 21:28   #11
Kolyan11
Новичок
Джуниор
 
Регистрация: 31.05.2011
Сообщений: 9
По умолчанию

спасибо, но не очень понял код
Kolyan11 вне форума Ответить с цитированием
Старый 31.05.2011, 21:39   #12
ololo-schoolboy
Форумчанин
 
Регистрация: 25.12.2010
Сообщений: 247
По умолчанию

Цитата:
вот последняя функция внизу как раз и ищет однофамилььцев(но не знаю как сделать чтоб полноценно работала программа)
так вот где собака-то порылась у меня тоже самое)
по идее нужно сначала отсортировать и находить промежуток с какого по какой фамилии совпадают и выводить
ololo-schoolboy вне форума Ответить с цитированием
Старый 31.05.2011, 21:41   #13
Kolyan11
Новичок
Джуниор
 
Регистрация: 31.05.2011
Сообщений: 9
По умолчанию

дааа=(
но как реализовать это дело кодом..
я сеня запарился писать...
когда увидел что он не полностью работает=)я сразу офигел..и понял что тут просто так не обойтись=(
Kolyan11 вне форума Ответить с цитированием
Старый 31.05.2011, 22:02   #14
ololo-schoolboy
Форумчанин
 
Регистрация: 25.12.2010
Сообщений: 247
По умолчанию

думаю с сортировкой проблем невозникнет, поиск по отсортированному массиву будет примерно такой

for(int i=0;i<N;++i)
{
int begin = i;
while(list[i]->name==list[++i]->name);
if(i-begin>=2)
{
//выводим элементы с [begin; i)
}
}
ololo-schoolboy вне форума Ответить с цитированием
Старый 31.05.2011, 22:23   #15
Kolyan11
Новичок
Джуниор
 
Регистрация: 31.05.2011
Сообщений: 9
По умолчанию

а что именно мы должны сортировать ?по алфавиту фамилии?
Kolyan11 вне форума Ответить с цитированием
Старый 01.06.2011, 09:44   #16
ololo-schoolboy
Форумчанин
 
Регистрация: 25.12.2010
Сообщений: 247
По умолчанию

Вот реализация, если хотите можете вместо пузырька, чтоньть по круче написать
Код:
#include<iostream>
#include<fstream>
#include<string>

using namespace std;

struct student
{
	string name;
	int key;
	int mark;
};

void viewInfo(student *p)
{
	cout<<p->name<<'\t'
		<<p->key<<'\t'
		<<p->mark<<endl;
}

void exchange(student **p1, student **p2)
{
	student *tmp = *p1;
	*p1 = *p2;
	*p2 = tmp;
}

void bubbleSort(student *list[], int n)
{
	bool sorted = true;
	do{
		sorted = true;
		for(int i=0;i<n-1;++i)
			if(list[i]->name > list[i+1]->name)
			{
				exchange(&list[i], &list[i+1]);
				sorted = false;
			}
	}while(!sorted);
}

void searchIdenticalNames(student *list[], int n)
{
	for(int i=0;i<n-1;++i)
	{
		int begin = i;
		while(list[i]->name==list[i+1]->name && i<n-1)
			++i;
		if(i-begin>=1)
			for(int j=begin;j<=i;++j)
				viewInfo(list[j]);
	} 
}

int main()
{
	ifstream fd("students.dat");
	if(fd)
	{
		const int MAX_SIZE=100;
		student *list[MAX_SIZE];
		int n=0;
		while (!fd.eof() && n<MAX_SIZE)
		{
			list[n]=new student;
			fd>>list[n]->name;
			fd>>list[n]->key;
			fd>>list[n]->mark;
			++n;
		}
		bubbleSort(list, n);
		searchIdenticalNames(list, n);
	}
	else
	{
		/*...*/
	}
	fd.close();
	cin.get();
	return 0;
}
ololo-schoolboy вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод XML-файла на экран Sparky Java для Web (EE, Servlet, JSP, Tomcat, Spring MVC) 6 28.01.2011 11:28
Вывод содержимого файла на экран! Nostalgy Общие вопросы C/C++ 5 16.01.2011 19:33
Вывод на экран текста из файла Snegovic Помощь студентам 4 16.09.2010 08:08
вывод файла на экран! Шушелла Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 29.10.2007 09:34