Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Prestidijitator
0 / 0 / 0
Регистрация: 18.10.2011
Сообщений: 4
1

Найти номера строк, элементы каждой из которых образуют монотонную последовательность

20.10.2011, 18:19. Просмотров 714. Ответов 5
Метки нет (Все метки)

II. Даны натуральное число n и целочисленный квадратный массив размера n*n. Найти номера строк, элементы каждой из которых образуют монотонную последо-вательность (монотонно убывающую или монотонно возрастающую). Сформировать из этих строк новый массив.

III. Дан строковый массив из n элементов, где n – натуральное число. Найти в этом массиве самую длинную подстроку, не содержащую цифры. Если эта подстрока не является палиндромом, повернуть ее на 180°.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2011, 18:19
Ответы с готовыми решениями:

Найти номера строк, элементы каждой из которых образуют монотонную последовательность
Дан целочисленный квадратный массив nxn(n<10). Найти номера строк , элементы...

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

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

Найти номера строк, элементы каждой из которых образуют упорядоченную последовательность
посмотрите, задача такая: дана целочисленная квадратная матрица порядка n....

Массив. Найти номера строк, элементы каждой из которых образуют упорядоченную последовательность
дана целочисленная квадратная матрица порядка n. Найти номера строк, элементы...

5
Thinker
Эксперт С++
4233 / 2207 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
20.10.2011, 19:24 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от Prestidijitator Посмотреть сообщение
III. Дан строковый массив из n элементов, где n – натуральное число. Найти в этом массиве самую длинную подстроку, не содержащую цифры. Если эта подстрока не является палиндромом, повернуть ее на 180°.
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
#include<stdio.h>
#include<conio.h>
#include<ctype.h>
#include<string.h>
#include<stdlib.h>
#define N 1024
 
int Palyndrom(char *s)
{
   int i, j;
   i = 0;
   j = strlen(s) - 1;
   while(i < j && s[i] == s[j])
   {
       i++;
       j--;
   }
   return i >= j;
}
 
void Inverse(char *s)
{
   char buf;
   int i, j;
   i = 0;
   j = strlen(s) - 1;
   while(i < j)
   {
       buf = s[i]; s[i] = s[j]; s[j] = buf;
       i++; j--;
   }
}
 
int main()
{
    char s[N], *t = NULL, *st;
    int i = 0, j, len = 0;
    fgets(s, N, stdin);
    while(s[i])
    {
        while(s[i] && isdigit(s[i]))
            i++;
        j = i;
        while(s[i] && !isdigit(s[i]))
            i++;
        if (i - j > len)
        {
            t = s + j;
            len = i - j;
        }
    }
    if (*(t + len - 1) == '\n')
        len--;
    st = (char *)malloc((len + 1) * sizeof(char));
    strncpy(st, t, len);
    st[len] = '\0';
    if (Palyndrom(st))
        puts(st);
    else
    {
        Inverse(st);
        puts(st);
    }
    free(st);
    getch();
    return 0;
}
1
Prestidijitator
0 / 0 / 0
Регистрация: 18.10.2011
Сообщений: 4
23.10.2011, 23:39  [ТС] 3
Ух намудрил... А главное, что не работает(((
0
Frt
0 / 0 / 0
Регистрация: 01.05.2011
Сообщений: 3
24.10.2011, 00:01 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
26
27
28
29
30
31
32
33
34
35
/*
III. Дан строковый массив из n элементов, где n – натуральное число. Найти в этом массиве самую длинную подстроку, не содержащую цифры. Если эта подстрока не является палиндромом, повернуть ее на 180°.
*/
#include <stdio.h>
#include <string.h>
#include <cctype>
#include <string>
#include <iostream>
using namespace std;
 
char a[111111];
string s, r;
 
bool ispal()
{
    int l = 0, r = strlen(a) - 1;
    while(l < r)
        if(a[l++] != a[r--]) return false;
    return true;
}
 
int main()
{
    int i;
    gets(a);
    if(!ispal()) strrev(a);
    for(i = 0; i < strlen(a); i++) {
        if(isdigit(a[i]) && r.size() < s.size()) r = s, s.clear();
        else if(isdigit(a[i])) s.clear();
        else s += a[i];
    }
    if(s.size() > r.size()) r = s;
    cout << r << endl;
    return 0;
}
0
kravam
быдлокодер
1709 / 896 / 105
Регистрация: 04.06.2008
Сообщений: 5,531
24.10.2011, 02:44 5
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

...Люблю, грешник, STL... Первое задание.
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
#include <stdio.h>
#include <stdlib.h>
#include <vector>
#define razmer 6
#include <algorithm>
 
using namespace std;
 
 
int main()
{
 
 int matrix [razmer][razmer];
 
 //ПОехали матрицу заполнять рандомно от 0 до 99 -ти допустим числами
 for (int i= 0; i< razmer; i++) 
  for (int j= 0; j< razmer; j++) 
   matrix [i][j]= rand()%10;
 
 //Заполним вторую и четвёртую строчку как надо:
  for (int i= 0; i< razmer; i++) { 
   matrix [2][i]= i+ 3;
   matrix [4][i]= i- 5;
  }           
 
 //Выведем матрицу:           
 for (int i= 0; i< razmer; i++){ 
  for (int j= 0; j< razmer; j++) 
   printf ("%4d ", matrix[i][j]);
  printf ("\n");
 } 
 printf ("\n");
 
 //ПОехали строчки искать:
 vector <int> vec;
 
 for (int i= 0; i< razmer; i++) {
 
  //Скропаем временный вектор
  vector <int> set_ (&matrix [i][0], &matrix [i][razmer]);
  //сортирнём
  sort (set_.begin(), set_.end());
 
  
  if (abs(set_ [0]- set_ [razmer- 1])== (razmer- 1)) 
   if (unique (set_.begin(), set_.end())== set_.end()) 
    vec.insert (vec.end(), set_.begin(), set_.end());
   
 }
 
 //Смотрим, чё получилось:
 
 for (int i= 0; i< vec.size(); i++)
  printf ("%4d ", vec[i]);
 
  getchar ();  
  return 0;
}
1
Prestidijitator
0 / 0 / 0
Регистрация: 18.10.2011
Сообщений: 4
22.12.2011, 17:23  [ТС] 6
Мне нужно не рандомно заполнять массив, а с клавитуры. И размер необходимо тоже ввести с клавиатуры
0
22.12.2011, 17:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2011, 17:23

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

Найти строки матрицы элементы которых образуют монотонную возрастающую последовательность
Дана целочисленная квадратная матрица порядка n. Найти строки, в которых...

Вывести номера строк, элементы которых образуют неубывающую последовательность
Дана матрица размера MxN . Вывести номера строк, элементы которых образуют...


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

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

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