Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите мне написат скрипт очень простой програмы, Нужно до завтра вечера 
:(
    Опции темы
Jin2D
Дата 19.5.2004, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 19.5.2004

Репутация: нет
Всего: нет



Я порсо начинающий программер и мне нужна помощь, не имею понятия как написатью
Програмулька---

принцип:
при введении предложения прога должна выбрать слово в котором наибольшее количество согласрых,
помогите мне плеасе!буду благодарен, если что кинте на мыло [email protected]


БЛОГОДАРЮ!
PM MAIL   Вверх
Sined
Дата 20.5.2004, 08:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 78
Регистрация: 19.5.2004

Репутация: 1
Всего: 0



Самое трудное--перечислить согласные...Если сделаешь, то программа будет что-то тип такокого:
Код

#include<stdio.h>
#include<mem.h>
#include<iostream.h>
mas[26]={0,1,......}0--гласные, 1 cсогласные.
typedef struct _struct
{
int pos;
int s;
}str;
int enum_sogl(char* str)
{
char a=0;
int j=strlen(str);
int* index=(int*)malloc(sizeof(int)*strlen(str));
str* sum=(int*)malloc(sizeof(str)*strlen(str));
int ts;
int pos=0;
int i;
for(i=0;i<j;i++)
index[i]=0;
int max_num=0;
for( i=0;i<str)
{
if((ch[i]>'a')&&(ch[i]<'z'))
index[i]=mas[ch[i]-'a'];
else if(ch[i]=' ')
index[i]=2;
 }

for(i=0;i<j;i++)
{
if(index[i]=='2')
{
sum.s[pos]=ts;
sum.pos=pos;
ts=0;
pos++;
}
else
ts+=index[i];
}

max_num=0;
for(i=0;i<pos;i++)
(max_num>sum[i].s)?(max_num=sum[i].pos):(max_num=max_num);

free(sum);free(index);
return max_num;
}

void main()
{
char m[]="Naidi do figa soglasnich";
int i=enum_sogl(m);
int p[2];
int c=0;
int j=0;
while(c<i)
{
(m[j]=='  ')?(c++):(c=c);
j++;
}
p[0]=j;
char* need_word=(char*)malloc((p[1]-p[0]+1));
while(m[j]!='  ')
{
need_word[j-p[0]]=m[j];
j++;
}
need_word[j]=NULL;
cout<<need_word;
free(need_word);


}




типа возвращает номер искомого слова в строке

Это сообщение отредактировал(а) Sined - 20.5.2004, 09:37
PM MAIL   Вверх
Гость_Jin2D
Дата 20.5.2004, 08:57 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











A ty mozes napisat s bibliotekami i tak dalee. naprimer:


#include<stdio.h> i tak dalee.


spasibo!
  Вверх
Sined
Дата 20.5.2004, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 78
Регистрация: 19.5.2004

Репутация: 1
Всего: 0



Смотри редакцию.
PM MAIL   Вверх
setq
Дата 20.5.2004, 10:18 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Код
#include <ctype.h>

char *f (char *s) {
   //ищем в s слово с макс. количеством согласных букв
   //возвращаем указатель на слово или 0 (?)
   //если слов несколько - возвр. указатель на первое

   char *now_word = s;
   char *max_word = 0;
   int now_count = 0;
   int max_count = 0;
   bool not_a_word = true;

   for (int i=0;s [i]!='\0';i++) {

       //если пробел - "выключаем" слово
       if (isspace (s [i]) || ispunct (s [i])) {
           not_a_word = true;
           continue;
       }

       //если буква - то "включаем" слово
       if (isalpha (s [i])) {
           if (not_a_word == true) {
               now_word = &s [i];
               now_count = 0;
               not_a_word = false;
           }

           //теперь, если согласная - увеличим счётчик и сделаем проверку
           char up_si = toupper (s [i]);

           if (up_si != 'A' &&
               up_si != 'E' &&
               up_si != 'I' &&
               up_si != 'O' &&
               up_si != 'U')      {

               now_count ++;
               if (now_count > max_count) {
                   max_count = now_count;
                   max_word = now_word;
                   continue;
               }
           }
       }

   }

   return max_word;
}

#include <stdio.h>

int main () {
   printf ("%s\n", f ("Naidi dofiga soglasnyh"));
   return 0;
}

  Вверх
Sined
Дата 20.5.2004, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 78
Регистрация: 19.5.2004

Репутация: 1
Всего: 0



Или вот более более простая и быстрая версия.
Код


#include <condefs.h>
#include<iostream.h>
#include<mem.h>

void fun(char* ch,char* word)
{
int off_min=0,temp_min=0;
int off_max=0,temp_max=0;
int index=0;
int tmp_index=0;
for(int i=0;i<strlen(ch);i++)
{
tmp_index+=(ch[i]!='a')&&(ch[i]!='o')&&(ch[i]!='u')&&(ch[i]!='y')&&
(ch[i]!='A')&&(ch[i]!='O')&&(ch[i]!='U')&&(ch[i]!='Y')&&(ch[i]!='i')&&(ch[i]!='I')&&
(ch[i]!=' ');
if((ch[i]==' ')+(i==strlen(ch)-1))
{
temp_max=i;
if(index<tmp_index)
{
off_max=temp_max;
off_min=temp_min;
index=tmp_index;

}
tmp_index=0;
temp_min=i;
}
}
memcpy(word,ch+off_min,off_max-off_min+1);
word[off_max-off_min+1]=NULL;
}

void main()
{
char m[]="Poschittttay do figa sssssssssssssoglasnich";
char* w=(char*)malloc(strlen(m)+2);
fun(m,w);
cout<<w;
cin>>w;


Это сообщение отредактировал(а) Sined - 20.5.2004, 11:58
PM MAIL   Вверх
Jin2D
Дата 20.5.2004, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 19.5.2004

Репутация: нет
Всего: нет



Spasibo vsem okolo 8 chasov ja proveriu ih, poskolku ja seicas na rabote. BLAGODARIU ZARANEE!!!

smile.gif
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0688 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.