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

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

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

Двухмерные массивы(матрица символов) C++
Матрица и одномерный массив (Составить одномерный массив, содержащий количество буквенных символов в каждом из ее столбцов, подсчет символов) C++
C++ Дана строка символов. Подсчитать общее число вхождений символов .,+ в строку
C++ Дана строка символов. Подсчитать общее число вхождений символов
Дан текст, содержащий 30 символов. Подсчитать количество вхождений символов А и Б. 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
Бродяга
 Аватар для dihlofos
302 / 256 / 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
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 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
 Аватар для MILAN
883 / 777 / 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
 Аватар для MILAN
883 / 777 / 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
 Аватар для MILAN
883 / 777 / 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
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 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     Матрица символов
Еще ссылки по теме:

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

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

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

Текущее время: 16:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru