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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.01.2010, 05:38   #1
Spifex
 
Регистрация: 14.01.2010
Сообщений: 3
По умолчанию Программа по строкам на С++.

Помогите пожайлуста с написанием это программы.
Вот задание:
Задан текст, состоящий из строк. Строк не менее 10. В строке не менее 5
слов. В слове не менее 5 символов. Слова разделены 1 пробелом.
Осуществить сортировку строк по наиболее длинному слову в порядке
неубывания.
Программа должна выполнять ввод текста, вывод его исходного варианта,
выполнять необходимые действия и выводить полученный текст.

Я что-то пытался... уже не могу((
Вот мои попытки:

Код:
#include <stdio.h>
#include <string.h>
#include <windows.h>

#define SIZE 81
#define LIM 20
#define HALT ""

void main (void);
void str_v(char *[] ,int, int []);
char* Rus(const char* text);

void main(void)
{
 static char input [LIM][SIZE];
 char *ptstr[LIM];
 int ct=0;
 int k,i=0,words=0,j=0;

 printf(Rus("Введите не менее 10 строк.\n"));
 printf(Rus("Для прекращения ввода нажмите ENTER в начале строки.\n"));
 while (gets(input[ct])!=NULL && ct<LIM)
 {
  if(strcmp(input[ct],HALT)==0)
  {
   if(ct<10)
   {
    printf(Rus("Введите не менее 10 строк(введено %d)\n"), ct);
	continue;
   }
   break;
  }
  ct++;
  ptstr[ct-1]=input[ct-1];
 }

 str_v(ptstr,ct);
 puts(Rus("\nОтсортированный список строк:\n"));
 for (k=0;k<ct;k++)
  puts(ptstr[k]);
 printf("\n");
}


void str_v(char *string[],int n)
{
	char *temp;
 static  int bukv[81], bukv2[20];
 int t,z,kol=0,h,max,e=0,qwe=0,p=0,seek;


for(t=0;t<n-1;t++)
{
    for (z=0;z<(strlen(string[t]));z++)
	{
		if (((string[t][z])==' ') || (z==(strlen(string[t])-1)))
		{
        bukv[e]=z-kol;
		kol=z;
		e++;
		}
	
	}
	max=bukv[0];
	for (p=0;p<e;p++)
	{
		if (max<bukv[p])
			max=bukv[p];
	}
		bukv2[qwe]=max;
		qwe++;
		kol=0;
		e=1;
}


 for(t=0;t<n-1;t++)
  for(seek=t+1;seek<n;seek++)
   if(bukv2[t]>bukv2[seek])
   {
    temp=string[t];
    string[t]=string[seek];
    string[seek]=temp;
   }

}

char bufRus[256];

char* Rus(const char* text)
{
 CharToOem(text,bufRus);
 return bufRus;
}
Пожайлуста помогите!!! Измените мою функцию str_v что бы заработало, у меня уже от этого голова болит...

Последний раз редактировалось Sazary; 15.01.2010 в 05:34.
Spifex вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача по строкам 2. seeton Помощь студентам 2 07.12.2009 19:29
вопрос по строкам CraZZy RabbIt Общие вопросы Delphi 4 21.04.2009 19:00
Задачка по строкам WhiteWaterLily Общие вопросы C/C++ 5 26.03.2009 17:39
Задача на С++ по строкам EwwwA Помощь студентам 2 20.12.2008 15:22
задача по строкам D_K_ Помощь студентам 10 14.12.2008 16:21