Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 5.00
mrd
1 / 0 / 0
Регистрация: 05.10.2010
Сообщений: 22
#1

Матрица символов - C++

10.10.2010, 15:45. Просмотров 2562. Ответов 14
Метки нет (Все метки)

Дана матрица символов. Определить строку, в которой максимальное количество букв.
Помогите решить в C, матрицу задать рандомно.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2010, 15:45     Матрица символов
Посмотрите здесь:

Двухмерные массивы(матрица символов) - C++
Вывести для каждой строки и каждого столбца символ который колличественно преобладает. В том случае если таких символов нет то вывести...

Найти сочетание символов после другого сочетания символов - C++
Доброго времени суток. Не могу придумать, как решить вот какую задачу: Есть построчный поиск по файлу. Нужно найти сочетание символов,...

Разработать функцию, которая меняет слова, содержащие заданную комбинацию символов, на соответствующее количество символов # - C++
Разработать функцию, которая меняет в предложении все слова, содержащие заданную комбинацию символов на соответствующее количество символов...

Дан набор символов, среди которых есть двоеточие ‘:’. Определить, сколько символов ему предшествует - C++
Дан набор символов, среди которых есть двоеточие ‘:’. Определить, сколько символов ему предшествует Дан набор символов, среди которых...

Написать программу, которая определяет, сколько символов введено с клавиатуры и сколько из них числовых символов - C++
Нужна помощь. Написать программу, которая определяет, сколько символов введено с клавиатуры и сколько из них числовых символов. Если...

Дан массив слов .Добавить в конец каждого слова по k символов ,совпадающим с первым символов слова - C++
Дан массив слов .Добавить в конец каждого слова по k символов ,совпадающим с первым символом слова . Удалить из всех слов цифры ....

Вывод символов из таблицы символов - C++
Здравствуйте. хочу распечатать символы из кодовой страницы и... Подскажите, пожалуйста, почему не печатаются символы и как их вообще...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mrd
1 / 0 / 0
Регистрация: 05.10.2010
Сообщений: 22
12.10.2010, 09:21  [ТС]     Матрица символов #2
помогите, пожалуйста.
robert19
25 / 25 / 3
Регистрация: 26.03.2010
Сообщений: 305
12.10.2010, 09:37     Матрица символов #3
Толи я туплю, толи задание такое. Как можно в матрице определить максимальную строку??
dihlofos
Бродяга
303 / 257 / 17
Регистрация: 27.08.2010
Сообщений: 553
12.10.2010, 10:06     Матрица символов #4
Типа найти строку, в которой больше всего букв, т.е. символов алфавита от A до Z?
robert19
25 / 25 / 3
Регистрация: 26.03.2010
Сообщений: 305
12.10.2010, 10:21     Матрица символов #5
Ну как я понимаю в задании сказано замутить матрицу символов. А в матрице все строки одинаковой длинны. Ну если только попробовать массив, так сказать, слов. То да можно))
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
12.10.2010, 10:30     Матрица символов #6
robert19,
Что по-вашему символ? Вы считаете, что "№", "1", "," - не символы? Символы. Но тем не менее это не буквы. Таким образом, в матрице

Код
a b c d
e f 1 4
g h i &
1 2 % №
Первая строка содержит максимальное количество букв.
robert19
25 / 25 / 3
Регистрация: 26.03.2010
Сообщений: 305
12.10.2010, 11:13     Матрица символов #7
Все понятно)))0

Добавлено через 34 минуты
Как то так, но все время 3-ю строку выдает почему то((((
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
int main(){
    setlocale(LC_ALL,"Russian");
 
    char str[3][3];
    for (int i=0;i<3;i++){
        for (int j=0;j<3;j++){
            str[i][j]=0;
        }
    }
 
    for (int i=0;i<3;i++){
        for (int j=0;j<3;j++){
            printf("Ведите символ: ");
            scanf("%s",&str[i][j]);
        }
    }
 
    for (int i=0;i<3;i++){
        for (int j=0;j<3;j++){
            cout<<" "<<str[i][j];
        }
        printf("\n");
    }
    int count=0, n=0, k=0;
    for (int i=0;i<3;i++){
        for (int j=0;j<3;j++){
            if (str[i][j] >= 'a' && str[i][j] <= 'z')
                count++;
        }
        if (n > count){
            count=0;
        }
        else{
            n = count;
            count = 0;
            k=i+1;
        }
    }
    cout<<"Максимальное число букв в строке: "<<k<<endl;
 
    return 0;
}
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
12.10.2010, 11:18     Матрица символов #8
robert19, вы неправильно задаете условыя. Нада вместо || использовать && !!!
robert19
25 / 25 / 3
Регистрация: 26.03.2010
Сообщений: 305
12.10.2010, 11:21     Матрица символов #9
Цитата Сообщение от MILAN Посмотреть сообщение
robert19, вы неправильно задаете условыя. Нада вместо || использовать && !!!
Ой, ну ладно, тут легко исправить
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
12.10.2010, 11:24     Матрица символов #10
Цитата Сообщение от robert19 Посмотреть сообщение
Ой, ну ладно, тут легко исправить
Исправить то легко, но результат будет другой!!!
robert19
25 / 25 / 3
Регистрация: 26.03.2010
Сообщений: 305
12.10.2010, 11:28     Матрица символов #11
Цитата Сообщение от MILAN Посмотреть сообщение
Исправить то легко, но результат будет другой!!!
А какй там будет. Вроде проверил, правильно все)))
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
12.10.2010, 11:35     Матрица символов #12
Цитата Сообщение от robert19 Посмотреть сообщение
А какй там будет. Вроде проверил, правильно все)))
Логическое или (||), возвращает истинну, если истиное хотя бы одно выражение. То есть, если у вас символ больше а, и больше z, или менше а, и менше z - возвратится истина. А вам нада, что бы истинимы были два выражения!!!
robert19
25 / 25 / 3
Регистрация: 26.03.2010
Сообщений: 305
12.10.2010, 11:37     Матрица символов #13
Ну дак я исправил
C++
1
2
if (str[i][j] >= 'a' && str[i][j] <= 'z')
                count++;
И теперь программа выдает ту строку в которой больше букв
silent_1991
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
12.10.2010, 11:40     Матрица символов #14
Для разнообразия:

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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
 
void randMatrix(char **matrix, int n, int m)
{
    int i, j;
 
    srand((unsigned)time(NULL));
 
    for (i = 0; i < n; i++)
        for (j = 0; j < m; j++)
            matrix[i][j] = 33 + 93 * rand() / RAND_MAX;
}
 
int maxLetters(char **matrix, int n, int m)
{
    int max, tempMax;
    int maxIndex;
    int i, j;
 
    for (i = 0, max = 0, tempMax = 0, maxIndex = -1; i < n; i++)
    {
        for (j = 0; j < m; j++)
        {
            if ((matrix[i][j] >= 'A' && matrix[i][j] <= 'Z') ||
                (matrix[i][j] >= 'a' && matrix[i][j] <= 'z'))
                tempMax++;
        }
 
        if (tempMax > max)
        {
            max = tempMax;
            maxIndex = i;
        }
 
        tempMax = 0;
    }
 
    return maxIndex;
}
 
int main()
{
    char **matrix;
    int maxIndex;
    int n, m;
    int i, j;
 
    printf("Enter n: ");
    scanf("%d", &n);
    printf("Enter m: ");
    scanf("%d", &m);
 
    matrix = (char **)malloc(n * sizeof(char *));
 
    for (i = 0; i < n; i++)
        matrix[i] = (char *)malloc(m * sizeof(char));
 
    randMatrix(matrix, n, m);
 
    printf("\nMatrix:\n\n");
 
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < m; j++)
            printf("%c ", matrix[i][j]);
 
        printf("\n");
    }
 
    maxIndex = maxLetters(matrix, n, m);
 
    if (maxIndex == -1)
        printf("Letters not found");
    else
        printf("\nLine with maximum number of letters: %d", maxIndex);
 
    for (i = 0; i < n; i++)
        free(matrix[i]);
 
    free(matrix);
 
    getch();
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2010, 11:41     Матрица символов
Еще ссылки по теме:

Как заставить Strncpy вложить в itog часть символов строки str, если дина str больше, чем кол-во нужных нам символов? - C++
strncpy(itog,str,size+1); cout&lt;&lt;itog; itog вообще не выводится Добавлено через 2 минуты Вот код. #include &lt;iostream&gt; ...

Преобразовать строку, удалив из нее каждую пару символов ‘<<’ и повторив каждую пару символов ‘>>’. - C++
В веденной пользователем строке, найти все вхождения подстроки и заменить ее на другую. Прошу помощи!

В тексте удалить каждое слово с четным числом символов, продублировать каждое слово с нечетным числом символов - C++
Помогите пожалуйста!!!!!!!Задан текст, состоящий из слов, записанных через запятые и,или пробел, и заканчивающийся точкой. Длина текста не...

Дана матрица символов 3х4. Подсчитать сколько раз среди символов встречается символ @ - Pascal ABC
Дана матрица символов 3х4. Подсчитать сколько раз среди символов встречается символ @.В паскале,спасибо!

Матрица символов. - PascalABC.NET
Написать программу, которая в матрице состоящей из букв английского алфавита a b c d e f g h i k l m n o p q r s t u v w x y z ...


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

Или воспользуйтесь поиском по форуму:
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
12.10.2010, 11:41     Матрица символов #15
robert19, правильно!
Yandex
Объявления
12.10.2010, 11:41     Матрица символов
Ответ Создать тему
Опции темы

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