A
aaaaaa
Задание:
Описать структуру с именем Toy, содержащую следующие поля: Title (название игрушки), Price (цена в рублях), Age (нижняя граница возраста). Написать программу, выполняющую следующие действия:
ввод с клавиатуры данных в массив Shop, состоящий из 7 структур типа Toy;
сортировка методом быстрой сортировки в алфавитном порядке по названиям игрушек;
вывод на экран информации об игрушках, название которых введено с клавиатуры;
если таких игрушек нет, вывести соответствующее сообщение.
________________________________________________________________________________
Собственно программа не работает. Ошибка где-то в функции сортировки, но не могу понять что не так. Помогите пожалуйста найти ошибку.
код:
Описать структуру с именем Toy, содержащую следующие поля: Title (название игрушки), Price (цена в рублях), Age (нижняя граница возраста). Написать программу, выполняющую следующие действия:
ввод с клавиатуры данных в массив Shop, состоящий из 7 структур типа Toy;
сортировка методом быстрой сортировки в алфавитном порядке по названиям игрушек;
вывод на экран информации об игрушках, название которых введено с клавиатуры;
если таких игрушек нет, вывести соответствующее сообщение.
________________________________________________________________________________
Собственно программа не работает. Ошибка где-то в функции сортировки, но не могу понять что не так. Помогите пожалуйста найти ошибку.
код:
C++:
#include <iostream>
#include <string.h>
#include <conio.h>
using namespace std;
#define N 7
struct Toy
{
char Title[30];
int Price;
int Age;
};
void Input (Toy (&)[N]);
void QuickSort (Toy (&)[N]);
void Find (Toy (&)[N]);
int main (void)
{
Toy Shop[N];
Input (Shop);
QuickSort (Shop);
Find (Shop);
getch ();
return 0;
}
void Input (Toy (&g)[N])
{
for (int i = 0; i < N; i++)
{
cout << "Enter name: ";
cin >> g[i].Title;
cout << "Enter price: ";
cin >> g[i].Price;
cout << "Enter age: ";
cin >> g[i].Age;
}
}
void QuickSort (Toy (&g)[N])
{
int i = 0;
int j = N;
Toy temp;
Toy p = g[ N>>1 ];
do {
while ( g[i] < p )
{
i++;
}
while ( g[j] > p )
{
j--;
}
if (i <= j)
{
temp = g[i];
g[i] = g[j];
g[j] = temp;
i++;
j--;
}
} while ( i<=j );
if ( j > 0 ) QuickSort(g, j);
if ( N > i ) QuickSort(g+i, N-i);
for (int l=0; l<N; l++)
{
cout << g[l].Name <<" "<< g[l].Price<<endl;
}
}
void Find (Toy (&g)[N])
{
char name;
int q = 0;
cout << "Enter name: ";
cin >> name;
for (int i = 0; i < N; i++)
{
if (g[i].Title > name)
{
cout << g[i].Title << " " << g[i].Price << endl;
q++;
}
}
if (q == 0)
{
cout << "No things." << endl;
}
}