С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
1 / 1 / 0
Регистрация: 05.05.2011
Сообщений: 35
1

Написать программу, которая определяет самую длинную серию одинаковых элементов матрицы

25.03.2012, 13:34. Показов 1534. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написать программу, которая определяет в какой строке целочисленной матрицы m*n, самая длинная серия одинаковых элементов.

Добавлено через 39 секунд
На си если можно)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Блог
25.03.2012, 13:34
Ответы с готовыми решениями:

Найти самую длинную серию одинаковых элементов
помогите задачу по си ++ задача:в одномерном массиве найти самую длинную серию одинаковых...

В одномерном масиве найти самую длинную серию одинаковых элементов
ЗАДАЧА С++ ПОМОГИТЕ РЕШИТЬ ПЛИЗ ВОТ ЗАДАНИЕ: 1)ПОДГОТОВИТЬ ТЕКСТОВЫЙ ФАЙЛ С ВХОДНЫМИ ДАНЫМИ В...

В одномерном массиве найти самую длинную серию одинаковых элементов
В одномерном массиве найти самую длинную серию одинаковых элементов. Сделайте в с++ через файлы...

В произвольном числовом векторе найти самую длинную серию одинаковых элементов
Помогите решить какую-нибудь задачу 1) написать m-функцию, возвращающую вектор сумм элементов тех...

8
Эксперт С++
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
25.03.2012, 13:56 2
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
#include <stdio.h>  
#include <stdlib.h>
#include <time.h>
  
int main()
{
    srand( time( NULL ) );
    int a[100][100], n, m, i, j, tmp, I=0, max=1;
    printf("n= "); scanf("%d", &n);
    printf("m= "); scanf("%d", &m);
    printf("Matrica\n");
    for(i=0; i<n; i++)
    {
        for(j=0; j<m; j++)
        {
            a[i][j]=rand()%10;
            printf("%d ", a[i][j]);
        }
        printf("\n");
    }
    for(i=0; i<n; i++)
    {
        tmp=1;
        for(j=1; j<m; j++)
        {
            if(a[i][j]==a[i][j-1])
                tmp++;
            else
                tmp=1;
            if(tmp>max)
            {
                max=tmp; I=i;
            }
        }
    }
    printf("%d", I);    
    return 0;
}
0
1 / 1 / 0
Регистрация: 05.05.2011
Сообщений: 35
25.03.2012, 13:58  [ТС] 3
Спасибо огромное)
0
32 / 29 / 1
Регистрация: 05.03.2012
Сообщений: 114
25.03.2012, 14:20 4
Не понял, программа должен показать то строку, которая самая длинная серия одинаковых элементов.
Я 6х6 задал программа показал:

0 4 1 3 8 4
0 2 3 9 3 1
8 1 8 1 8 8
9 1 5 2 5 8
0 8 7 8 2 1
4 8 3 0 6 4
2

Мб должен показать 3?
0
Эксперт С++
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
25.03.2012, 14:26 5
Цитата Сообщение от Betokuha Посмотреть сообщение
Не понял, программа должен показать то строку, которая самая длинная серия одинаковых элементов.
ну если быть точнее, то мой код
определяет в какой строке целочисленной матрицы m*n, самая длинная серия одинаковых подряд идущих элементов
1
32 / 29 / 1
Регистрация: 05.03.2012
Сообщений: 114
25.03.2012, 14:33 6
А вот как понял круто
0
139 / 139 / 39
Регистрация: 26.02.2011
Сообщений: 545
25.03.2012, 14:50 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
int poiskseria(int **math,int m, int n)
{
    int x1,x2,count,max_count;
     int max_index = 0;//начинаем с нуля максиал.
     max_count = 1;
    for(int x1=1; x1<m; x1++)//проходимся в цикле по строкам массива,поиск строки с одинаковыми элементами
    {
         count = 1;
         for(int x2=1; x2<n; x2++)
         {
                      if(math[x1][x2]==math[x1][x2-1])//если элемент равен предыдущему, увеличиваем переменную с длинной серии на 1
                      {
                                      count++;
                      }
                      else
                      {
                                 if(max_count<count)
                                 {
                                                    max_count=count;
                                                    max_index=x1;
                                 }
                      count=1;
                      }
         }
    }
    if (max_count > 1)
        printf(" \nNomer stroki s samoi dlinoi seriey odinakovih elementov:  %d",max_index+1);//В С нумерация элементов массива идет с 0,поэтому надо +1строчка
    else
        printf("\nSeriy odinakovih elmntov net");
}
0
1 / 1 / 0
Регистрация: 05.05.2011
Сообщений: 35
11.04.2012, 09:43  [ТС] 8
а как будет программа выглядеть полностью? Можно ответ
1
139 / 139 / 39
Регистрация: 26.02.2011
Сообщений: 545
11.04.2012, 11:41 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
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
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
int poiskseria(int **math,int m, int n)
{
    int x1,x2,count,max_count;
     int max_index = 0;//начинаем с нуля максиал.
     max_count = 1;
    for(int x1=1; x1<m; x1++)//проходимся в цикле по строкам массива,поиск строки с одинаковыми элементами
    {
         count = 1;
         for(int x2=1; x2<n; x2++)
         {
                      if(math[x1][x2]==math[x1][x2-1])//если элемент равен предыдущему, увеличиваем переменную с длинной серии на 1
                      {
                                      count++;
                      }
                      else
                      {
                                 if(max_count<count)
                                 {
                                                    max_count=count;
                                                    max_index=x1;
                                 }
                      count=1;
                      }
         }
    }
    if (max_count > 1)
        printf(" \nNomer stroki s samoi dlinoi seriey odinakovih elementov:  %d",max_index+1);//В С нумерация элементов массива идет с 0,поэтому надо +1строчка
    else
        printf("\nSeriy odinakovih elmntov net");
}             
int main()
{
    int **math,x1,x2,m,n,a,b;
    printf("Vvedite kolichestvo strok: ");
    scanf("%i",&m);
    printf("Vvedite kolichestva stolbcov: ");
    scanf("%i",&n);
    printf("Vvedite niznuy granicu: ");
    scanf("%i",&a);
    printf("Vvedite verchnuy granicu: ");
    scanf("%i",&b);
    printf("\n");
          while (m<=0 || n <=0  ) //цикл от неверного заполнения
           {
            printf("\tZnacheniy dolzni bit > 0\n");
            printf("\n");
            printf("Vvedite kolichestvo strok: ");
            scanf("%i",&m);
            printf("Vvedite kolichestva stolbcov: ");
            scanf("%i",&n);
            printf("Vvedite niznuy granicu: ");
            scanf("%i",&a);
            printf("Vvedite verchnuy granicu: ");
            scanf("%i",&b);
            printf("\n");
           }
    printf("\n");
    printf("\tMatrica\n\n");
    math = (int**)malloc(m*sizeof(int));//создаем массив и выделем память
         for (x1 = 0;x1<m;x1++)//проходимся в цикле по строкам массива
          {
            math[x1] = (int*)malloc(n*sizeof(int));//выделем память и подсчитываем размер перевенной n
          }
          srand(time(NULL));//рандомные числа для заполнения массива
          for(x1=0;x1<m;x1++)//проходимся в цикле по строкам массива
          {
              for (x2=0;x2<n;x2++)//проходимся в цикле по столбцам массива
              {
                math[x1][x2]=(rand()%(b-a+1))+a;//числа от a до b рамдомно расположенные в матрице
                printf(" %d", math[x1][x2]);
              }
          printf("\n");
          }     
poiskseria(math,m,n);
free(math);//освобождение памяти
getch();
}
2
11.04.2012, 11:41
cpp_developer
Эксперт
20123 / 5690 / 417
Регистрация: 09.04.2010
Сообщений: 12,546
Блог
11.04.2012, 11:41
Помогаю со студенческими работами здесь

Определить номер столбца, который содержит самую длинную серию одинаковых чисел
1) Задана целочисленная матрица A(N,M). Определить номер столбца, который содержит самую длинную...

Написать программу, которая определяет номер строки, в которой сумма элементов матрицы минимальна
Здравствуйте. Помогите пожалуйста написать программу для этих двух задач. 2. Дана матрица чисел...

Написать программу, которая определяет номер строки квадратной матрицы, сумма элементов которой максимальна
Выполнить задание, используя динамическое выделение памяти. Делал такое же задание, но не...

Написать программу, которая определяет номер строки квадратной матрицы, сумма элементов которой минимальна
Написать программу, которая определяет номер строки квадратной матрицы, сумма элементов которой...

Написать программу, которая определяет номер столбца квадратной матрицы, сумма элементов которого максимальна
1) Написать программу, которая определяет номер столбца квадратной матрицы, сумма элементов...

Написать программу, которая определяет номер строки квадратной матрицы, сумма элементов которой максимальна
Написать программу, которая определяет номер строки квадратной матрицы, сумма элементов которой...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru