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

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

Восстановить пароль Регистрация
 
Prestidijitator
0 / 0 / 0
Регистрация: 18.10.2011
Сообщений: 4
20.10.2011, 18:19     Найти номера строк, элементы каждой из которых образуют монотонную последовательность #1
II. Даны натуральное число n и целочисленный квадратный массив размера n*n. Найти номера строк, элементы каждой из которых образуют монотонную последо-вательность (монотонно убывающую или монотонно возрастающую). Сформировать из этих строк новый массив.

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

Подсчитать количество строк, элементы которых образуют возрастающую последовательность C++
C++ Массив. Найти номера строк, элементы каждой из которых образуют упорядоченную последовательность
Найти номера строк, элементы каждой из которых образуют упорядоченную последовательность C++
C++ Найти номера строк, элементы которых упорядочены по возрастанию
Найти номера строк матрицы, все элементы которых чётны C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 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;
}
Prestidijitator
0 / 0 / 0
Регистрация: 18.10.2011
Сообщений: 4
23.10.2011, 23:39  [ТС]     Найти номера строк, элементы каждой из которых образуют монотонную последовательность #3
Ух намудрил... А главное, что не работает(((
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;
}
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,270
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;
}
Prestidijitator
0 / 0 / 0
Регистрация: 18.10.2011
Сообщений: 4
22.12.2011, 17:23  [ТС]     Найти номера строк, элементы каждой из которых образуют монотонную последовательность #6
Мне нужно не рандомно заполнять массив, а с клавитуры. И размер необходимо тоже ввести с клавиатуры
Yandex
Объявления
22.12.2011, 17:23     Найти номера строк, элементы каждой из которых образуют монотонную последовательность
Ответ Создать тему
Опции темы

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