Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
vadim222
0 / 0 / 1
Регистрация: 09.12.2015
Сообщений: 24
1

С клавиатуры вводится строка

14.06.2016, 20:14. Просмотров 878. Ответов 1
Метки нет (Все метки)

С клавиатуры вводится строка . Разработать программу , которая реализует указанные действия .
а ) подсчитывает количество слов , которые имеют нечетную длину ;
б) выводит на экран частоту вхождения каждой буквы ;
в) удаляет текст размещен в круглых скобках.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2016, 20:14
Ответы с готовыми решениями:

Узнать длинну строки не в байтах,а в символах, строка вводится с клавиатуры
Использую strlen - выдает непонятные значения, sizeof - ему нужна константа на вход, а у меня...

С клавиатуры вводится динамическая строка. Проверить, входит ли в нее цифры 5 и 7
С клавиатуры вводится динамическая строка. Проверить, входит ли в нее цифры 5 и 7. При доступе к...

С клавиатуры вводится текстовая строка. Сделать програму на Си которая реализовывает следующие действия:
С клавиатуры вводится текстовая строка. Сделать програму на Си которая реализовывает следующие...

Программа заменяющая первую букву после точки на заглавную. Строка вводится с клавиатуры
Напишите программу на языке программирования С, заменяющую первую букву после точки на заглавную....

С клавиатуры вводится строка символов. Вывести на экран все согласные символы, встречающиеся в строке
С клавиатуры вводится строка символов. Вывести на экран все согласные символы, встречающиеся в...

1
LaFayette
46 / 46 / 57
Регистрация: 25.11.2015
Сообщений: 140
17.06.2016, 11:41 2
Лучший ответ Сообщение было отмечено vadim222 как решение

Решение

vadim222,

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
#include <stdio.h>
 
#define IN  1                         // определение статусов внутри и вне слова
#define OUT 0
#define MAX 20
#define SIZE 500
 
 
int main( void )
{
  
  unsigned char a, b, d, state, nword, nwords, upper, nupper; // декларация переменных
  unsigned char ndigit [94];          // декларация массива рег частоту символов                               
  unsigned char w[MAX], evenWords = 0, charArray[SIZE] = "";
  signed char c;
  
 
  state = OUT;                     /* начальный статус для подсчета слов ставим на 'OUT' 
                                    т.е. "вне слова" */
  nwords = nword = upper = nupper = 0; 
  
  for( a = 0; a < 94; ++a )             /* инициализация массива который будет 
                                      содержать вводимые символы...*/
  
  ndigit[a] = 0;                     //...где отсчет каждого элемента начнется с нуля
  
  for( b = 0; b < MAX; ++b )
    
    w[b] = 0;
 
  while(( c = getchar()) != EOF ) {
  
        if (c >= ' ' && c <= '~')  /* задаем диапазон символов которые хотим считать...
                                    ими будут 95 печатных символов таблицы ASCII в том же 
                                    порядке в котором они расположены в ней */
            
            ++ndigit [c - ' '];     /* проверка наличия вводимого элемента среди тех из 
                                    которых состоит массив начнется с 'space' так как он 
                                    является первым  элементом массива нежели первым 
                                    печатным символом таблицы ASCII */
 
            charArray[b++] = c;     // записывает текст в массив
 
        if (state == OUT)
            ++nword;                                    
      
        if ( !((c >= 'a' && c <= 'z' ) || ( c >= 'A' && c <= 'Z' ))) {
            state = OUT;
            ++nwords;
            }
      
      else {
        if (state == OUT){            
            state = IN;
     
    }
     
        if (state == IN)
            ++w[nwords];
        }
    }
    
     
     printf("\n %-5s%-8s%9s%13s%16s\n","n","Char","DecCodeASCII","RepeatNum","Histogram");
     printf("\n");
       
    for ( b = 0, c = 32, d = 1; b < 94; ++b, ++c){        
        
        if (ndigit[b] > 0) {
            puts(" ");
            printf(" %-5hhu%-8c%-16hhu%-15hhu ", d++, c, c, ndigit[b]);
            }
    
    for (a = 0; a < ndigit [b]; ++a)
        if (ndigit [b] > 0)
        putchar( '*' );
        }
    
    printf("\n\n");
    printf("Number of simbols: %hhu\n", --d );// выводит результат подсчитаных букв
    
    for ( a = 0; a < 94; ++a ) {    // находит элемент с наибольшим количеством повторений
      
      if ( ndigit [a] > upper )
        upper = ndigit[a];
    }
    
    for ( a = 0; a < 94; ++a ) {    /* проверяет если имеется больше чем один элемент 
                                    насчитывающий самое большое количество повторений */
      if ( ndigit[a] == upper )
        ++nupper;
    }
 
    printf("Size of longest sequence: %hhu\n", upper);    /* выводит на экран наибольший 
                                                            номер повторений */
    printf("Reps of longest sequence: %hhu\n\n", nupper); /* выводит на экран номер 
                                                            элементов с наибольшим 
                                                            количеством повторений */
    
    /* строим вертикальную гистограмму используя два цикла 'for'. Переменная "upper" 
    будет служить верхушкой гистограммы.*/
 
    for (a = upper; a > 0; --a){
        for(b = 0; b < 94; ++b){  
            
            if (ndigit [b] >= a)
                printf("%-2c", '*');
            
            else if (ndigit [b] > 0) 
                printf("%2c", ' ');
                }
          
          puts("");
    } 
 
    for (a = ++d; a > 1; --a){                 // строит линию под гистограммой
        if ( a > 1 )
            printf("%c", '_');
    
        if (a > 2)
            printf("%c", '_');
        } 
  
  puts( "" );
  
  for (a = 0, b = 32; a < 94; ++a, ++b){   /* подставляет под колону гистограммы 
                                           соответствующий символ */
  if (ndigit[a] > 0)
  printf("%-2c", b);        
  
  } 
          
puts("");
 
printf("\n%s", "Total words inserted whith odd numbers of letters: " );
 
  for (a = 0; a < MAX; ++a)
    if ( w[a] % 2 != 0 )
        ++evenWords;
    
    printf("%hhu", evenWords );
 
    puts( "\n\nFinal text is follows: \n" );
    for ( a = 0, b = 32; a < 94; ++a, ++b ) {
 
            if ( charArray[a] == '(') {
                for ( c = 0; charArray [a] != ')'; ++c )
                    ++a;
            }
            else
            printf( "%c", charArray[a] );
        }
            puts( "" );
          
  return 0; 
}
Код
Today is a (maybe) beatiful day!

 n    Char    DecCodeASCII    RepeatNum       Histogram

 
 1            32              5               ***** 
 2    !       33              1               * 
 3    (       40              1               * 
 4    )       41              1               * 
 5    T       84              1               * 
 6    a       97              5               ***** 
 7    b       98              2               ** 
 8    d       100             2               ** 
 9    e       101             2               ** 
 10   f       102             1               * 
 11   i       105             2               ** 
 12   l       108             1               * 
 13   m       109             1               * 
 14   o       111             1               * 
 15   s       115             1               * 
 16   t       116             1               * 
 17   u       117             1               * 
 18   y       121             3               ***

Number of simbols: 18
Size of longest sequence: 5
Reps of longest sequence: 2

*         *                         
*         *                         
*         *                       * 
*         * * * *   *             * 
* * * * * * * * * * * * * * * * * * 
___________________________________
  ! ( ) T a b d e f i l m o s t u y 

Total words inserted whith odd numbers of letters: 4

Final text is follows: 

Today is a  beatiful day!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2016, 11:41

С клавиатуры вводится строка. Составить программу, которая подсчитывает количество слов, имеющих нечетную длину
З клавіатури вводиться текстовий рядок. Скласти програму, яка підраховує кількість слів, які мають...

С клавиатуры вводится слово
Здраствуйте. С клавиатуры вводится слово. Написать программу распечатывающую все буквы этого...

Вычислить значение функции от X (вводится с клавиатуры)
(2^(1/x-1)-sin(x-1))/(cos^2(1-x)+log((2+|1-x|,2))*(3-x)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru