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

Дан текст, произвольной длины. Определить символ, встречающийся в тексте с максимальной частотой

31.01.2014, 14:49. Просмотров 1457. Ответов 9
Метки нет (Все метки)

Помогите написать программы на языке С,с помощью scanf,printf и т.д.
1)Дан текст, произвольной длины. Определить символ, встречающийся в тексте с максимальной частотой.
2)Дана матрица размером n x m. Найти наибольший положительный и наименьший отрицательный элементы матрицы.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.01.2014, 14:49
Ответы с готовыми решениями:

Определить символ, встречающийся в тексте с максимальной частотой
Дана строка длиной не более 80 символов, оканчивающаяся точкой. Нужно определить символ, ...

Дан текст произвольной длины, оканчивающийся точкой с запятой. Подсчитать количество цифр в тексте
1Дан текст произвольной длины, оканчивающийся точкой с запятой. Подсчитать количество цифр в...

Определить наиболее часто встречающийся символ в тексте
дан текстовый файл необходимо определить наиболее часто встречающийся символ в тексте

Определить ASCII символ наиболее часто встречающийся в тексте
Здравствуйте. Как правильно решить данную задачу. Помогите пож-та. Задача: есть некий текст, в...

9
49 / 4 / 0
Регистрация: 18.12.2012
Сообщений: 247
Записей в блоге: 1
31.01.2014, 15:00 2
это раздел для с++, вам тогда следует разместить эту тему в разделе C для начинающих
0
319 / 225 / 73
Регистрация: 22.11.2013
Сообщений: 856
Записей в блоге: 1
31.01.2014, 15:14 3
Цитата Сообщение от virtuos553 Посмотреть сообщение
это раздел для с++, вам тогда следует разместить эту тему в разделе C для начинающих
могла и опечататься
но на всякий случай код дам универсальный:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdlib.h>
#include <iostream>
 
int main()
{
int m,n;
int **mas;
m=10;
n=20;
mas=(int**) malloc (sizeof(int*)*m);
for (int i=0;i<m;i++) mas[i]=(int*)malloc(sizeof(int)*n);
/*код пример*/
for (int i=0; i<m; i++) for (int j=0; j<n; j++) mas[i][j]=i+j; 
for (int i=0; i<m; i++) for (int j=0; j<n; j++) std::cout<< mas[i][j]<<std::endl; 
/*конец кода код пример*/
for (int i=0;i<m;i++) free(mas[i]);
free(mas);
std::system ("pause");
return 0;
}
1
0 / 0 / 0
Регистрация: 30.01.2014
Сообщений: 5
31.01.2014, 15:20  [ТС] 4
Спасибо)Но мне на самом деле надо на языке С.Мозг скоро лопнет от этих программ(((

Добавлено через 2 минуты
Цитата Сообщение от virtuos553 Посмотреть сообщение
это раздел для с++, вам тогда следует разместить эту тему в разделе C для начинающих
я на форуме второй день и не до конца разобралась еще!Если вы такой умный можно было проигнорить мое сообщение и все!
0
432 / 297 / 82
Регистрация: 11.12.2010
Сообщений: 1,209
31.01.2014, 15:23 5
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
#include <stdlib.h>
#include <time.h>
// Генерирует случайное число из заданного диапазона
// min - нижняя граница
// max - верняя граница
int random(int min, int max)
{
    return (double)rand() / RAND_MAX *(max - min) + min;
}
// Получает случайно сгенерированный массив
// n,m размер массива
// min - нижняя граница, max - верняя граница случайных чисел
int** getRandomArray(int n, int m, int min, int max)
{
    int** _array = new int*[n];
    for (int i = 0; i < n; i++)
    {
        _array[i] = new int[m];
        for (int j = 0; j < m; j++)
        {
            _array[i][j] = random(min, max);
        }
    }
    return _array;
}
 
//Считываем массив с консоли
//n,m размер массива
int** ReadArray(int n, int m)
{
    int** _array = new int*[n];
    for (int i = 0; i < n; i++)
    {
        _array[i] = new int[m];
        for (int j = 0; j < m; j++)
        {
            scanf_s("%i", &_array[i][j]);
        }
    }
    return _array;
}
// Выводим массив на консоль
// _array - массив для вывода, 
// n,m -размер массива
void PrintArray(int** _array, int n, int m)
{
    for (int i = 0; i < n; i++, printf("\r\n"))
    {
        for (int j = 0; j < m; j++)
        {
            printf("%i\t", _array[i][j]);
        }
    }
}
//Получаем минимум
//_array - массив для поика, n,m его размер
int GetMin(int** _array, int n, int m)
{
    int _min = _array[0][0];
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            if (_min> _array[i][j])
                _min = _array[i][j];
        }
    }
    return _min;
}
//Получаем максимум
//_array - массив для поика, n,m его размер
int GetMax(int** _array, int n, int m)
{
    int _max = _array[0][0];
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            if (_max < _array[i][j])
                _max = _array[i][j];
        }
    }
    return _max;
}
int main()
{
    srand(time(NULL));
    int n, m, _min, _max;
    int **_array;
    printf("Input n :\r\n");
    scanf_s("%i", &n);
    printf("Input m :\r\n");
    scanf_s("%i", &m);
    _array = getRandomArray(n, m, -25, 25); 
    //_array = ReadArray(n, m);
    printf("_array = :\r\n");
    PrintArray(_array, n, m);
    _min = GetMin(_array, n, m);
    _max = GetMax(_array, n, m);
    printf("\r\nMax = %i, Min = %i :", _min < 0 ? _min : 0, _max >= 0 ? _max : 0);
    system("Pause");
    return 0;
}
Да scanf_s можно заменить на scanf. Просто у меня компилятор не разрешает (говорит что небезопасно) А так это сишный код.
1
0 / 0 / 1
Регистрация: 30.01.2014
Сообщений: 11
31.01.2014, 15:29 6
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
#include<stdio.h>
#include<stdlib.h>
 
int main()
{
    int m,n;
    int **mas;
    scanf("%d%d",&m,&n);
 
    mas=(int**) malloc (sizeof(int*)*m);
    for (int i=0;i<m;i++)
        mas[i]=(int*)malloc(sizeof(int)*n);
 
    for(int i=0;i<m;i++)
        for(int j=0;j<n;j++)
            scanf("%d",&mas[i][j]);
 
    int min=0,max=0;
 
    for(int i=0;i<m;i++)
        for(int j=0;j<n;j++)
        {
            if(min>mas[i][j])
                min=mas[i][j];
            if(max<mas[i][j])
                max=mas[i][j];
        }
    printf("%d %d",min,max);
    return 0;
}
0
0 / 0 / 0
Регистрация: 30.01.2014
Сообщений: 5
31.01.2014, 16:33  [ТС] 7
Подскажите как переделать эту прогу по заданию!


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
#include <stdio.h>
#define DLSL 80 
 
main()
{ char s;   
char sl[DLSL];  
int i,j;    
int psl=1;  
printf ("\n\nВведите строку символов\n");
s=getchar();
while (s!='\n')
{ if (s==' ') s=getchar();
else
{ i=0;
do
{ sl[i++]=s;
s=getchar();
}
while ((s!=' ') && (s!='\n'));
if (i<5)
{ if (psl) /* если слово первое */
{ printf ("Слова длиной до 5 символов:\n");
psl=0;
}
for (j=0; j<i; j++)
putchar(sl[j]);
putchar(' ');
}
}
}
if (psl) printf ("Слов длиной до 5 символов нет");
}
0
49 / 4 / 0
Регистрация: 18.12.2012
Сообщений: 247
Записей в блоге: 1
01.02.2014, 01:27 8
нет, я не в коем случае не умничал, скорее наоборот, хотел помочь, разместив задачу здесь , скорей всего вам решат ее на плюсах, что на сколько я понял вас не устроит, поэтому я лишь посоветовал вам разместить ее там , где вам точно решат ее на C
0
...
1797 / 1263 / 933
Регистрация: 12.02.2013
Сообщений: 2,058
01.02.2014, 07:37 9
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
#include <stdio.h>
#include <stdlib.h>
 
//-----------------------------------------------------------------------------
int* GetChars(const char text[], int* chars) {
    for (; *text; ++text) {
        chars[(const unsigned char)(*text)]++;
    }
 
    return chars;
}
//-----------------------------------------------------------------------------
char GetFrequentChar(const char text[]) {
    int chars[256] = { 0 };
    int max = 0, i;
 
    GetChars(text, chars);
 
    for (i = 1; i < 256; ++i) {
        if (chars[max] < chars[i]) {
            max = i;
        }
    }
 
    return max;
}
//-----------------------------------------------------------------------------
 
int main() {
 
    printf("%c", GetFrequentChar("Hello World"));
 
    return 0;
}
0
Ev[G]eN
01.02.2014, 10:56     Дан текст, произвольной длины. Определить символ, встречающийся в тексте с максимальной частотой
  #10
 Комментарий модератора 
Тема перенесена из раздела "С++ для начинающих"
0
01.02.2014, 10:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.02.2014, 10:56
Привет! Вот еще темы с ответами:

Определить в тексте слово максимальной длины с четным количеством букв
Определить в тексте слово максимальной длины с четным количеством букв должно быть выполнено не...

Дан зашифрованный текст и его расшифрованный первый символ. Определить кодовое смещение k и расшифровать текст
Дано зашифрованное предложение на русском языке (способ шифрования описан в задании String35) и его...

Найти самый часто встречающийся символ в тексте
я &quot;сделал&quot; программу шифратор и дешифратор текста по методу цезаря, но теперь мне надо сделать так...

Символ, встречающийся в тексте максимальное количество раз
Найти и напечатать символ, встречающийся в тексте максимально. - Как это вообще делается?


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

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

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