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

не получается составить алгоритм Шелла - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Разкодировка строки http://www.cyberforum.ru/cpp-beginners/thread955859.html
Имеется задача: Шифровка (Время: 1 сек. Память: 16 Мб) Разведкой был перехвачен ряд шифровок, которые передавал Джеймс Бонд. Известно, что каждое послание зашифровано методом циклического сдвига. Суть которого в том, что каждая буква заменяется на букву, отстоящую в алфавите от первой на определенном расстоянии. Это расстояние называется знаменателем шифра. Так, при знаменателе шифра 2 буква D...
C++ найти значение функции Помогите пожалуйста!! Для каждого x, изменяющегося от a до b с шагом h, найти значения функции Y(x), суммы S(x) и |Y(x)–S(x)| и вывести в виде таблицы. Значения a, b, h и n вводятся с клавиатуры. Так как значение S(x) является рядом разложения функции Y(x), при правильном решении значения S и Y для заданного аргумента x (для тестовых значений исходных данных) должны совпадать в целой части и в... http://www.cyberforum.ru/cpp-beginners/thread955843.html
C++ Поиск элементов матрицы
Здравствуйте. Знаю, ошибка где-то в самом алгоритме, уже час себе голову ломаю, толку нету. Надеюсь на помощь. В общем, есть динамическая квадратная матрица М, нужно найти все элементы выше главной диагонали, которые кратные 5. вот часть кода: int a = 0, b = 0, j, **M; //далее создание массива, заполнение их, т.д. /* код поиска и вывода элемента и его индексов */ for(; a < j; a++)...
Использование Struct C++
Условие: Создать массив структур, используя данные из задания. Создать программное приложение, которое включает его обработку с выведением на экран результатов(глобальные переменные не использовать, функция main должна быть назначена только для вызова функций пользователя) Задание: Ведомость про участников конкурса содержит такую информацию: фамилия, имя, адрес,спортивная секция, набранный...
C++ Qt Считывание информации в таблицу, исключая мусор http://www.cyberforum.ru/cpp-beginners/thread955821.html
Основная цель: Программа должна считывать данные, из кучи мусора записывать необходимые в определенные разделы, а после высчитывать сумы, минумумы и максимумы вроде как удалось все сделать как полагается но есть одна проблема она должна быть универсальной, а на разных данных она считывает не все записи, вот код, и примеры необходимых данных: mainwindow.cpp #include "mainwindow.h" #include...
C++ Написать программу, которая вычерчивает на экране узор – ломанную линию 1.Написать программу, которая вычерчивает на экране узор – ломанную линию из 100 звеньев со случайными координатами случайного цвета. Очень прошу помочь, завтра последний день сдачи практики, а я никак не могу успеть. Ибо я буду писать этот код часа 4 т.к. плохо разбираюсь в С++. Заранее благодарен. Если поможет вот начало кода задачи (то что успел) #include <stdlib.h> #include <iostream>... подробнее

Показать сообщение отдельно
Alexandr95
0 / 0 / 0
Регистрация: 26.05.2013
Сообщений: 3
16.09.2013, 20:19     не получается составить алгоритм Шелла
В файле input.xtx содержатся сведения о группе студентов в формате:
запись о каждом студенте группы, которая содержит следующие сведения:фамилия, имя, отчество, год рождения, оценки по пяти предметам.
Переписать данные файла input.txt в output.txt, отсортировав их:
в алфавитном порядке по фамилии, а затем по убыванию года рождения алгоритмом Шелла
Код
#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>
using namespace std;
ifstream in ("/home/student/input");
ofstream out  ("/home/student/output");
struct mas
{
	int key;
    string fam, name, sname;
    int year;
    int ses[5];
    void print();
		};
void mas::print()
{
	out<<setw(25)<<left<<fam<<setw(20)<<name<<setw(15)<<sname;
	for(int i=0;i<5;i++)
	out<<setw(3)<<ses[i];
	out<<setw(5)<<year<<endl;
		}
	void sort(mas *a, int n)
{
		mas temp;
		int i,j, incr=n/2;
		while (incr>0)
		{
			for(i=incr; i<n; i++)
			{
				j=i-incr;
				while(j>=0)
					if(a[j].key>a[j+incr].key)
					{
						temp=a[j];
						a[j]=a[j+incr];
						a[j+incr]=temp;
						j=j-incr;
					}
					else j=-1;
			}
			incr = incr/2;
		}
}
int main()
{
	int n=0,m,i;
	mas stud [20];
	if(!in) cout<<"Warning";
			else
			{
				in>>m;
	while(in.peek()!=EOF)
				{
	in>>stud[n].fam;
	in>>stud[n].name;
	in>>stud[n].sname;
	//stud[n].year
	for (i=0; i<n; i++)
	{
		in>>stud[n].year[i];
	}
?
?
?
?
?
		n++;
				}
	sort(stud,n);
	out<<m<<endl;
	for (i=0;i<n;i++)
	stud[i].print();
			}
in.close();out.close();
        		return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru