1

Тема: Визначити слово з речення в якому найбільше зустрічається заданалітера

int main(void) {

char stk[] = {"Fish loves fisher's food\0"};

char sym = 's' ; 

printf("Vkhidnyj rjadok: %s ",stk); 


  char *lim = "\0"; int c, r;
  
 char *pw, *ch, *sw; 
  pw=strtok (stk, lim); 
   printf("\nSlovo: %s", pw);

 
 if (pw!="s" ) {
 pw=strtok (" ", "\0");
 c++;
 
}
if(r<c){r=c;
ch=pw;
}

  printf("\n%d",c);


 printf("\nSlovo: %s", pw);
getch();
 return 0;

}

Допоможіть будь-ласка з цією проблемою. Мені здається те що я написав повний абсур і я зайшов глухий кут з такою простою задачкою.

2

Re: Визначити слово з речення в якому найбільше зустрічається заданалітера

Напиши коментарі і тобі стане зрозуміліше.
По-перше, напиши завдання. Перевір, чи воно правильне.
По-друге, напиши по пунктах алгорітм, як ти його бачиш.
Прочитай алгоритм, уяви як він працює.
Чи згоден ти, що він працює правильно?
Перевір чи збігається твій код з алгоритмом.

Подякували: koala, pluszz2

3

Re: Визначити слово з речення в якому найбільше зустрічається заданалітера

В тому й проблема алгоритм я вже придумав "що кожен елемент має перевірятись до побілу коли находить на пробіл рух зупиняється і звіряється з попередніми значеннями якщо букв менше то рух продовжуться до наступного а якщо більше попереднього то потрібно замінити значення кількості і замінити символи" але я неможу реалізувати цього на коді не через те що я плутаюсь, я код бачу а в тому що я неможу зрозуміти як мені це реалізувати з алгоритму в код

4

Re: Визначити слово з речення в якому найбільше зустрічається заданалітера

Ти ж навіть завдання не перевірив!

Визначити слово з речення в якому найбільше зустрічається заданалітера

Це завдання некоректне бо, що якщо таких слів не буде взагалі, або буде кілька слів... а ти в же "алгоритм придумав"
Спочатку розбери завдання, щоб воно було чітким і однозначним, а потім вже думай алгорітм

5

Re: Визначити слово з речення в якому найбільше зустрічається заданалітера

1. Вирівняйте код, ви собі ж ускладнюєте життя. Кожна { - збільшуєте відступ, } - зменшуєте. І не пишіть два вирази в одному рядку.
2. Ви пишете "кожен елемент має перевірятися". "Кожен елемент", якщо ви не розумієте, означає цикл по елементах. У вас немає циклу.
3. strtok - це хороша функція, яка робить певні дії, які ви можете тут використати; але для роботи з нею, боюся, вам треба самому розуміти, які саме дії вона виконує. Якщо ви не можете написати задачу з strtok - краще її не використовувати взагалі, тільки все заплутаєте.

В цілому алгоритм я б записав так: в циклі перевіряємо кожен елемент. Якщо слово почалося - запам'ятовуємо, де саме початок. Якщо ми всередині слова - збільшуємо лічильник літер s. Якщо вийшли за межі слова - запам'ятовуємо поточний максимум і відповідне слово та скидаємо лічильник літер s. Так зрозуміліше?

Подякували: oleg966971