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

Определить номер строки, в которой находится самая длинная серия одинаковых элементов - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
winmaks
0 / 0 / 0
Регистрация: 13.12.2009
Сообщений: 19
16.12.2009, 13:23     Определить номер строки, в которой находится самая длинная серия одинаковых элементов #1
помогите студенту с решением ...

1)в целочисленной квадратной матрице определить номер строки, в которой находиться самая длинная серия одинаковых элементов.
2)упорядочить элементы массива по возрастанию модулей элементов.
3)в одномерном массиве состоящем из n вещественных элементов, вычислить произведение элементов массива расположенных между максимальным и минимальным элементами.


ко второй задаче я нашел код на форуме но не на том языке может кто то переделает на Си?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int main()
 
{
    int n, i, j;
    std::cout<<"n = ", std::cin>>n;
    int* mas = new int[n];
    std::cout<<"mas: "<<std::endl;
    for(i = 0; i < n; ++i)
        std::cin>>mas[i];
    for(j = 0; j < n; ++j)
        for(i = 0; i < n - 1; ++i)
            if(fabs(mas[i]) > fabs(mas[i + 1]))
                mas[i] ^= mas[i + 1] ^= mas[i] ^= mas[i + 1];
    std::cout<<"sort mas:"<<std::endl;
    for(i = 0; i < n; ++i)
        std::cout<<mas[i]<<' ';
    fflush(stdin);
    std::cin.get();
    return 0;
}
ЗЫ заранее спасиб за помошь
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2009, 13:23     Определить номер строки, в которой находится самая длинная серия одинаковых элементов
Посмотрите здесь:

Номер столбца, в которой находится самая длинная серия одинаковых элементов. C++
C++ Определить номер столбца матрицы, в котором находится самая длинная серия одинаковых элементов
Номер строки, в которой самая длинная серия одинаковых злементов C++
C++ Найти номер строки матрицы, в которой находится самая длинная серия одинаковых элементов
C++ Дана целочисленная прямоугольная матрица. Определить номер строки, в которой находится самая длинная серия одинаковых элементов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Darky
Быдлокодер
 Аватар для Darky
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
16.12.2009, 13:57     Определить номер строки, в которой находится самая длинная серия одинаковых элементов #2
winmaks, Выложенный вами код фактически идентичен языку C.
cout заменяется на printf, cin - scanf
winmaks
0 / 0 / 0
Регистрация: 13.12.2009
Сообщений: 19
16.12.2009, 14:14  [ТС]     Определить номер строки, в которой находится самая длинная серия одинаковых элементов #3
функции заменил выдает ошибки в 14,17,18,21 строках что нужно исправить?)
и если не трудно о4 нужно решение первой задачи ...

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
#include <math.h>
#include <conio.h>
#include <stdio.h>
 
int main()
 
{
    int n, i, j;
    printf("n = ");
    scanf("%d", &n);
    int* mas = new int[n];
    printf("mas: ");
    for(i = 0; i < n; ++i)
        scnaf("%d", & mas[i]);
    for(j = 0; j < n; ++j)
        for(i = 0; i < n - 1; ++i)
            if(fabs(mas[i]) > fabs(mas[i + 1]))
                mas[i] ^= mas[i + 1] ^= mas[i] ^= mas[i + 1];
    printf("sort mas:");
    for(i = 0; i < n; ++i)
        printf("%d", mas[i]);
    fflush(stdin);
    getch();
    return 0;
}
Darky
Быдлокодер
 Аватар для Darky
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
16.12.2009, 14:57     Определить номер строки, в которой находится самая длинная серия одинаковых элементов #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
winmaks, Попробуйте так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <math.h>
#include <stdio.h>
int main()
{
    int n, i, j;
    printf("n = ");
        scanf("%d", &n);
    int* mas = new int[n];
    printf("mas: ");
    for(i = 0; i < n; ++i)
        scanf("%d", & mas[i]);
    for(j = 0; j < n; ++j)
        for(i = 0; i < n - 1; ++i)
            if(fabs(mas[i]) > fabs(mas[i + 1]))
                mas[i] ^= mas[i + 1] ^= mas[i] ^= mas[i + 1];
    printf("sort mas:");
    for(i = 0; i < n; ++i)
        printf("%d", mas[i]);
    fflush(stdin);
    return 0;
}
Добавлено через 7 минут
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
#include <stdio.h>
int main(void)
{
  int i,A[255],n=0,min=0,max=0,temp=1;
  printf("Vvedite razmernost massiva:");
  scanf("%d",&n);
  max=A[0];
    for (i=0;i<n;i++)
    {
      printf("Vvedite A [%d]: ",i);
      scanf("%d",&A[i]);
        if (A[i]>max)
            max=i;
    }
    min=A[0];
    for (i=0;i<n;i++)
    {
        if (A[i]<min)
            min=i;
    }
    for (min;min<max;min++)
      temp*=A[min];
    printf("Произведение эл. между min и max: %d",temp);
}
winmaks
0 / 0 / 0
Регистрация: 13.12.2009
Сообщений: 19
16.12.2009, 20:04  [ТС]     Определить номер строки, в которой находится самая длинная серия одинаковых элементов #5
во второй задаче при компиляции выдает ошибки:

Compiling...
primer_2.c
c:\users\ìàêñèì\desktop\åãîâöåâà ëèçà\primer_2\primer_2.c(8) : error C2143: syntax error : missing ';' before 'type'
c:\users\ìàêñèì\desktop\åãîâöåâà ëèçà\primer_2\primer_2.c(11) : error C2065: 'mas' : undeclared identifier
c:\users\ìàêñèì\desktop\åãîâöåâà ëèçà\primer_2\primer_2.c(11) : error C2109: subscript requires array or pointer type
c:\users\ìàêñèì\desktop\åãîâöåâà ëèçà\primer_2\primer_2.c(11) : error C2102: '&' requires l-value
c:\users\ìàêñèì\desktop\åãîâöåâà ëèçà\primer_2\primer_2.c(14) : error C2109: subscript requires array or pointer type
c:\users\ìàêñèì\desktop\åãîâöåâà ëèçà\primer_2\primer_2.c(14) : error C2109: subscript requires array or pointer type
c:\users\ìàêñèì\desktop\åãîâöåâà ëèçà\primer_2\primer_2.c(15) : error C2109: subscript requires array or pointer type
c:\users\ìàêñèì\desktop\åãîâöåâà ëèçà\primer_2\primer_2.c(15) : error C2109: subscript requires array or pointer type
c:\users\ìàêñèì\desktop\åãîâöåâà ëèçà\primer_2\primer_2.c(15) : error C2109: subscript requires array or pointer type
c:\users\ìàêñèì\desktop\åãîâöåâà ëèçà\primer_2\primer_2.c(15) : error C2109: subscript requires array or pointer type
c:\users\ìàêñèì\desktop\åãîâöåâà ëèçà\primer_2\primer_2.c(15) : error C2106: '^=' : left operand must be l-value
c:\users\ìàêñèì\desktop\åãîâöåâà ëèçà\primer_2\primer_2.c(15) : error C2106: '^=' : left operand must be l-value
c:\users\ìàêñèì\desktop\åãîâöåâà ëèçà\primer_2\primer_2.c(15) : error C2106: '^=' : left operand must be l-value
c:\users\ìàêñèì\desktop\åãîâöåâà ëèçà\primer_2\primer_2.c(18) : error C2109: subscript requires array or pointer type
Error executing cl.exe.

primer_2.exe - 14 error(s), 0 warning(s)


и с первой задачкой помоги пожалуйста ...
Darky
Быдлокодер
 Аватар для Darky
507 / 294 / 45
Регистрация: 22.11.2009
Сообщений: 892
Завершенные тесты: 1
16.12.2009, 21:03     Определить номер строки, в которой находится самая длинная серия одинаковых элементов #6
winmaks, Вы не в состоянии поправить ошибки? Видимо, Ваш компилятор не воспринимает знак "^", что вызывает большую часть проблем.
А первую задачу можно сделать, если хотя бы чуток над ней подумать. Давайте постараемся, а?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2009, 07:00     Определить номер строки, в которой находится самая длинная серия одинаковых элементов
Еще ссылки по теме:

Определить номер столбца, в котором находится самая длинная серия одинаковых элементов C++
Найти номер строки матрицы, в которой находится самая длинная серия одинаковых элементов C++
C++ Найти номер строки, в которой находится самая длинная серия одинаковых элементов

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

Или воспользуйтесь поиском по форуму:
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
17.12.2009, 07:00     Определить номер строки, в которой находится самая длинная серия одинаковых элементов #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
К первой задаче:
если mas[][] - квадратная матрица размерностью n, тогда так:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int max_i=0, max=1, a;
for(int i=0; i<n; i++)
for(int j=0; j<n-1; j++)
{
    
    if(mas[i][j]==mas[i][j+1])
    {
        a=0;
        while(mas[i+a][j]==mas[i][j+1+a] && i+a<n)
            a++;
        if(max<a+1)
        {
            max=a+1;
            max_i=i;
        }
        i+=a+1;
    }
}
теперь в max_i номер нужной нам строки.
Yandex
Объявления
17.12.2009, 07:00     Определить номер строки, в которой находится самая длинная серия одинаковых элементов
Ответ Создать тему
Опции темы

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