Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Новички в программировании > Помощь студентам
Регистрация

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



Ответ
 
Опции темы
Старый 11.02.2009, 01:52   #1
Данилыч Д.
 
Регистрация: 09.12.2007
Сообщений: 8
Репутация: 10
Сообщение Помогите разобраться с задачей С

Люди помогите разобраться с задачей, скажите что я не так делаю. Задача состоит в том, что бы найти в строке самое длиное слово и удалить его.

Код:

#include<stdio.h>
#include<string.h>
#define N 80
int main()
{int i,m,q,s=0,k,n;
char st[N];
scanf("%[A-Za-z0-9]", &st);
n=strlen;
for(i=0;i<n&&st!=' ';i++)
m=i;
for(;st[i]!=' ';i++)
k++;
q=i;
while(st[i])
{s=0;
for(;st[i]!=' '&&st!='\0';i++)
s++;
if(s>k) {m=q+1; q=i; k=s;}}
do{ st[m]=st[q];
m++; q++;} while(st[q]);
st[m]='\0';
printf("%s",st[m]);
return 0;
}


Последний раз редактировалось Stilet; 12.02.2009 в 12:42.
Данилыч Д. вне форума   Ответить с цитированием
Старый 11.02.2009, 02:38   #2
counter
Профессионал
 
Регистрация: 18.10.2008
Сообщений: 1,410
Репутация: 431
По умолчанию

1.
Код:

n=strlen(st);

2.
Код:

scanf("%[A-Za-z0-9]", &st);

и
Код:

for(i=0;i<n&&st!=' ';i++)

скорее всего пробел вы не встретите, т.к. в st запишутся только символы из множества [A-Za-z0-9]

3.
Код:

printf("%s",st)

или так
Код:

for(int i=0;i<m;i++)
          {
               printf("%c",st[i]);
          }

counter вне форума   Ответить с цитированием
Старый 11.02.2009, 12:04   #3
bura
Пользователь
 
Регистрация: 07.01.2009
Сообщений: 15
Репутация: 10
Радость

Да много чего не так делаешь
Вот код программы. Правда, работает только со словами из латинских букв.
Код:

#include <stdio.h>

int bukva(char);
void prnst(char [], int);
void del(char [], int, int);

int main(void)
{char st[100];
 int i, t, beg, buk, index, maxlen;

 printf("Vvedite stroku: \n");
 gets(st);
 for(i=0; st[i]!='\0'; i++);
 st[i]=' '; //добавляем пробел в конец строки
 st[i+1]='\0';
 i=0;
 t=0;
 maxlen=0;
 buk=0;
 while(st[i]!='\0')
 {if (bukva(st[i])==1)
  {if (buk==0)
   {beg=i;
    buk=1;
   }
   t++;
  }
  else
  {if (buk==1)
   {if (t>maxlen)
    {index=beg;
     maxlen=t;
    }
    buk=0;
    t=0;
   }
  }
  i++;
 }
 if (maxlen==0)
  printf("Stroka ne sodergit slov\n");
 else
 {printf("Samoe dlinnoe slovo: ");
  prnst(&st[index], maxlen);
  printf("Slovo sodergit %d bukv\n", maxlen);
  del(st, index, maxlen);
  printf("Stroka posle udaleniya slova: \n");
  printf("%s\n", st);

 }
 return 0;
}
//ф-ция возвращает 1, если символ - буква, и 0, если не буква
int bukva(char c)
{unsigned char a;
 a=(unsigned char) c;
 if (((a>=65)&&(a<=90))||((a>=97)&&(a<=122)))
  return 1;
 else
  return 0;
}

void prnst(char s[], int n)
{int i;
 for(i=0; i<n; i++)
  printf("%c", s[i]);
 printf("\n");
}
void del(char s[], int k, int n)
{int i, j;
 for(i=0; i<n; i++)
  for(j=k; s[j]!='\0';j++)
   s[j]=s[j+1];
}


Последний раз редактировалось bura; 11.02.2009 в 15:58.
bura вне форума   Ответить с цитированием
Старый 12.02.2009, 12:22   #4
Данилыч Д.
 
Регистрация: 09.12.2007
Сообщений: 8
Репутация: 10
По умолчанию

Спасибо большое)))
Данилыч Д. вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться с задачей Dialon Помощь студентам 8 10.02.2009 16:24
Помогите разобраться с задачей, уже в отчаянии (+) Ink_90 Паскаль 3 22.12.2008 17:42
помогите с задачей разобраться r3krut Паскаль 1 16.12.2007 16:43




21:18.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru