Код
#include<conio.h>
#include<stdio.h>
#include<math.h>
#include<iostream.h>
#include<string.h>
class book
{
char **a; //Указатель массива указателей
int k;
public:
book(); //Конструктор
void output();
int srednee();
void inserting();
~book() {delete [] a; cout<<"Память очищена";}; //Деструктор
};
void main()
{
clrscr();
int m;
int *b; //Указатель на массив
book *obj;
//Ввод вывод
cout<<"Введите кол-во книг: ";
cin>>m;
b = new int [m]; //Создание массива средних значений
obj = new book [m]; //Создание массивов обьектов
/*cout<<"--------------------------Вывод-------------------------\n";
for (int i=0; i<m; i++)
{
cout<<"----------------------"<<i+1<<"-я книга : --------------\n";
obj[i].output();
} */
//Среднее
for (int i=0; i<m; i++)
{
b[i]=obj[i].srednee();
cout<<" Среднее"<<i+1<<" книги = "<<b[i]<<"\n";
}
int max=b[0],t=1;
for (i=0; i<m-1; i++)
if (max<b[i+1])
{
max=b[i+1];
t=i+2;
}
cout<<"Номер книги с максимальной длинной: "<<t<<"\n";
//--------------------------------------------------------------------
obj[t-1].inserting();
for (i=0; i<m; i++)
{
cout<<"----------------------"<<i+1<<"-я Книга : --------------\n";
obj[i].output();
}
delete (obj);
while(!kbhit());
}
//----------------------------------------------------------------------
void book::book() //Конструктор
{
int i;
char tmp[255];
printf("Введите кол-во страниц: ");
cin>>k;
a = new char* [k]; //Создание массива указателей
printf("\nВведите текст книги – после каждой страницы Enter\n");
for (i=0; i<k; i++)
{
gets(tmp);
a[i] = new char [strlen(tmp)+1];
stpcpy(a[i],tmp);
}
printf("Ввод завершён!\n\n");
}
//-----------------------------------------------------------
void book::output()
{
for (int i=0; i<k; i++)
{
printf(a[i]);
printf("\n");
}
delete a;
}
//-------------------------------------------------------------
int book::srednee()
{
int dlinna=0, kolichestvo=0,r,sr=0;
for (int i=0; i<k; i++)
{
r=0;
for (int g=0; g<strlen(a[i]); g++)
if (a[i][g]==' ')
r++;
dlinna=dlinna+(strlen(a[i])-r);
kolichestvo=kolichestvo+(r+1);
}
sr=(dlinna/kolichestvo);
while (!kbhit());
return (sr);
}
//Заголовок
void book::inserting()
{
char s[250],d[250];
printf("Введите желаемый заголовок: ");
scanf ("%s", s);
for (int i=0; i<k; i++)
{
strcpy(d,a[i]);
strcpy(a[i],s);
strcat(a[i],d);
}
}
Держи )
Исходные данные: текст книги.
Функции:
1)Определение средней длины слова в книге.
2)Вставка заданного заголовка в начало каждой страницы.
Обработка:
1)Определить с использованием первой функции номер объекта, который имеет максимальную среднюю длину слова.
2) Для найденного объекта выполнить вторую функцию.
ЗЫ в проге используется динамическая память xD