1

Тема: Допоможіть будь ласка

Ввести однорядковий текст небільше 300 символів , що складається з англ букв ,цифр,знаків пунктуації тобто розділові знаки .
Аналізувати текст до першої крапки і підрахувати :
1)малі голосні англ букви;
2)цифри;
3)знаки пунктуації;
Множину голосних букв і множину знаків визначити при ініціалізації масивів у вигляді текстового рядка.

2

Re: Допоможіть будь ласка

перепрошую, а з чим допомого потрібна?

3

Re: Допоможіть будь ласка

як би так сказати. З усім)

4

Re: Допоможіть будь ласка

Dazai написав:

як би так сказати. З усім)

Підручник за вас почитати, чи що?

5

Re: Допоможіть будь ласка

цьому студенту краще б справила спочатку прочитати :)

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

6

Re: Допоможіть будь ласка

можете підказати підручник ? Не можу знайти шось подібне в інтернеті

7

Re: Допоможіть будь ласка

Мені подобається автор Стівен Пратта.

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

8 Востаннє редагувалося Droid 77 (28.11.2021 17:53:46)

Re: Допоможіть будь ласка

Візьміть для прикладу *.mp3 файл.
Розглядайте його  не як файл, а як архів з даними різних типів.
Тобто архив з текстовими даними: назва альбому, виконавець, назва треку.
Далі йдуть дані безпосередньо даних аудіо-треку.
Кожні з цих даних розділені спецсимволами початку і кінця даних.

P. S.
На мою думку сучасним викладачам слід переглянути методику викладання.
Замість давати завдання з незрозумілою кінцевою метою, тре надавати пояснення для чого ці дії треба. Надавати приклади.

P. P. S.
Цивілізація деградує. Отже не кожен здатен навчатися за методиками СРСР... ))

Подякували: Dazai, mamkin haker2

9

Re: Допоможіть будь ласка

char str[n];

 int l;
int n_q=0,n_w=0,n_r=0,n_t=0,n_f=0,n_g=0;
 int n_a,n_e,n_i,n_y,n_o,n_u;
 printf("Input Text : \n");
  gets(str);
printf("Text : %s\n",str);



printf("liitle res :");
n_a=0;
n_e=0;
n_i=0;
n_y=0;
n_o=0;
n_u=0;
for (l=0; l<strlen(str); l++)
{
   if(str[l]=='a')
   n_a++;
   if(str[l]=='e')
   n_e++;
   if(str[l]=='i')
   n_i++;
   if(str[l]=='y')
   n_y++;
   if(str[l]=='o')
   n_o++;
   if(str[l]=='u')
   n_i++;
}
printf("a = %d i=%d e=%d y=%d o=%d u=%d",n_a,n_i,n_e,n_y,n_o,n_u);





printf("\n");
printf("..............");
printf("\n ");
printf("Znak :\n");
for (int h=0; h<strlen(str); h++)
{
   if(str[h]=='.')
   n_q++;
   if(str[h]==';')
   n_w++;
   if(str[h]==',')
   n_r++;
   if(str[h]==':')
   n_t++;
   if(str[h]=='?')
   n_f++;
   if(str[h]=='!')
   n_g++;
}
printf(".= %d ;=%d ,=%d :=%d ?=%d !=%d",n_q,n_w,n_r,n_t,n_f,n_g);
printf("\n ");
printf("................\n");

як можна спростито ось такий код?

10

Re: Допоможіть будь ласка

0. Робіть відступи і використовуйте else. Ваш код виглядає так, ніби n_a++, n_e++ і т.д. виконуються обов'язково, незалежно від попередніх if; і всі перевірки теж будуть здійснені, хоча якщо перша умова виконується, подальші перевірки не потрібні.
1. Можете використовувати switch-case, воно тут трохи краще виглядає за if-else (хоча все одно не дуже).
2. А взагалі, оскільки можливих значень символів усього 256, а char в C - таке саме число, як і int, можете зробити масив

int n[256] = {0}; //якщо це заскладно, зануліть у циклі
int len = strlen(str); //strlen обчислює довжину стрічки і містить цикл для цього; не викликайте його в циклі
for(l=0;l<len;++l)
  n[(unsigned char)str[l]]++; //підраховуємо всі символи
printf("a = %d i=%d e=%d y=%d o=%d u=%d",n['a'],n['i'],n['e'],n['y'],n['o'],n['u']);
Подякували: Dazai1

11

Re: Допоможіть будь ласка

а як це можна виконати ну наприклад якщо є масив
g[7]="aeiyou"

12

Re: Допоможіть будь ласка

Dazai написав:

а як це можна виконати ну наприклад якщо є масив
g[7]="aeiyou"

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

13

Re: Допоможіть будь ласка

я маю на увазі що як за допомого масиву g[7]="aeiyou" можна порахувати скільки є голосних в основному масиві

14 Востаннє редагувалося koala (28.11.2021 19:30:52)

Re: Допоможіть будь ласка

А чим вас мій спосіб не задовільняє? Так, кілька байтів зайвих використано, зате швидко і без метушні.

15

Re: Допоможіть будь ласка

Мене влаштовує ваш код  але умова завдання така ,що потрібно використовувати масив g[7]="aeiyou" для обчислення

16 Востаннє редагувалося koala (29.11.2021 11:17:39)

Re: Допоможіть будь ласка

Просто перебирайте цей масив при обробці масиву n.

Перепрошую, вчора таки я неуважно прочитав завдання.

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