Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

Матрица и одномерный массив (Составить одномерный массив, содержащий количество буквенных символов в каждом из ее столбцов, подсчет символов) - C++
Помогите решить задачку: Дана матрица 5х7, элементами которой являются значения символьного типа. Составить одномерный массив, содержащий...

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

дана квадратичная матрица z[n][n]. составить программу, которая если матрица симметричная(транспонированная матрица равна исходной), сделает ее не сим - C++
помогите пожалуйста. условие: дана квадратичная матрица z. составить программу, которая если матрица симметричная(транспонированная...

Дана матрица целых чисел, из n строк и n столбцов (n < = 100).Определить является ли матрица нулевой (состоит из одних нулей) - C++
#include &lt;iostream.h&gt; #include &lt;iomanip.h&gt; #include&lt;conio.h&gt; void main() { int mas; int N; int max_element; int...

Дана матрица целых чисел, из n строк и n столбцов (n < = 100).Определить является ли матрица нулевой (состоит из одних нулей) - C++
#include &lt;iostream.h&gt; #include &lt;iomanip.h&gt; #include &lt;stdlib.h&gt; int main(int argc, char* argv) { srand(time(NULL)); int mas; ...

Как настроить ввод русских символов и в дальнейшем вывод этих символов - C++
Подскажите как в этом коде настроить ввод русских символов и в дальнейшем вывод этих символов. Данный код выводит лишь всякую ерунду место...

14
mrd
1 / 0 / 0
Регистрация: 05.10.2010
Сообщений: 22
12.10.2010, 09:21  [ТС] #2
помогите, пожалуйста.
0
robert19
26 / 26 / 3
Регистрация: 26.03.2010
Сообщений: 305
12.10.2010, 09:37 #3
Толи я туплю, толи задание такое. Как можно в матрице определить максимальную строку??
0
dihlofos
Бродяга
303 / 257 / 17
Регистрация: 27.08.2010
Сообщений: 553
12.10.2010, 10:06 #4
Типа найти строку, в которой больше всего букв, т.е. символов алфавита от A до Z?
0
robert19
26 / 26 / 3
Регистрация: 26.03.2010
Сообщений: 305
12.10.2010, 10:21 #5
Ну как я понимаю в задании сказано замутить матрицу символов. А в матрице все строки одинаковой длинны. Ну если только попробовать массив, так сказать, слов. То да можно))
0
silent_1991
Эксперт С++
4987 / 3044 / 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 % №
Первая строка содержит максимальное количество букв.
0
robert19
26 / 26 / 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;
}
1
MILAN
886 / 780 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
12.10.2010, 11:18 #8
robert19, вы неправильно задаете условыя. Нада вместо || использовать && !!!
0
robert19
26 / 26 / 3
Регистрация: 26.03.2010
Сообщений: 305
12.10.2010, 11:21 #9
Цитата Сообщение от MILAN Посмотреть сообщение
robert19, вы неправильно задаете условыя. Нада вместо || использовать && !!!
Ой, ну ладно, тут легко исправить
0
MILAN
886 / 780 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
12.10.2010, 11:24 #10
Цитата Сообщение от robert19 Посмотреть сообщение
Ой, ну ладно, тут легко исправить
Исправить то легко, но результат будет другой!!!
0
robert19
26 / 26 / 3
Регистрация: 26.03.2010
Сообщений: 305
12.10.2010, 11:28 #11
Цитата Сообщение от MILAN Посмотреть сообщение
Исправить то легко, но результат будет другой!!!
А какй там будет. Вроде проверил, правильно все)))
0
MILAN
886 / 780 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
12.10.2010, 11:35 #12
Цитата Сообщение от robert19 Посмотреть сообщение
А какй там будет. Вроде проверил, правильно все)))
Логическое или (||), возвращает истинну, если истиное хотя бы одно выражение. То есть, если у вас символ больше а, и больше z, или менше а, и менше z - возвратится истина. А вам нада, что бы истинимы были два выражения!!!
0
robert19
26 / 26 / 3
Регистрация: 26.03.2010
Сообщений: 305
12.10.2010, 11:37 #13
Ну дак я исправил
C++
1
2
if (str[i][j] >= 'a' && str[i][j] <= 'z')
                count++;
И теперь программа выдает ту строку в которой больше букв
0
silent_1991
Эксперт С++
4987 / 3044 / 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;
}
0
MILAN
886 / 780 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
12.10.2010, 11:41 #15
robert19, правильно!
0
12.10.2010, 11:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2010, 11:41
Привет! Вот еще темы с ответами:

Введите массив символов из 12 элементов. Удвоить все коды символов массива - C++
Условие :Введите массив символов из 12 элементов. Удвоить все коды символов массива. Заранее спасибо )

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

Найти количество символов в самой длинной цепочке из одинаковых символов - C++
Дана строка символов St длиной не более 72, которая может состоять из цифр, малых латинских букв и знаков '+' '-' '*' '/' '.' ')' '(' ...

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


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

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

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