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

Создать програму, которая в символьном масиве находит наибольшое количество цифр идущих подряд - C++

Войти
Регистрация
Восстановить пароль
 
FedVetal
0 / 0 / 0
Регистрация: 29.08.2012
Сообщений: 53
07.12.2012, 01:28     Создать програму, которая в символьном масиве находит наибольшое количество цифр идущих подряд #1
Подскажите как создать програму, которая в символьном масиве находит наибольшое количество цыфр идущих одна за одной(подряд).в С++
Буду рад любой помощи идеи,советы,код что нибудь....
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2012, 01:28     Создать програму, которая в символьном масиве находит наибольшое количество цифр идущих подряд
Посмотрите здесь:

C++ Найти наибольшее количество подряд идущих цифр в строке
C++ функция. количество идущих подряд нулей.
C++ Удалить из каждой группы подряд идущих цифр все начальные незначащие нули
Описать функцию, которая подсчитывает максимальное количество символов, идущих подряд в строке C++
удалить из каждой группы идущих подряд цифр нули C++
C++ Вывести на экран длину наибольшей последовательности цифр, идущих подряд в строке
Найти наибольшее количество подряд идущих цифр в строке C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
PazDim
5 / 5 / 0
Регистрация: 08.08.2011
Сообщений: 93
07.12.2012, 01:34     Создать програму, которая в символьном масиве находит наибольшое количество цифр идущих подряд #2
Цитата Сообщение от FedVetal Посмотреть сообщение
Подскажите как создать програму, которая в символьном масиве находит наибольшое количество цыфр идущих одна за одной(подряд).в С++
Буду рад любой помощи идеи,советы,код что нибудь....
ну... Во-первых, что находится в массиве? Если только числа и пробелы, то дело обстоит так: есть максимальное количество цифр=0, есть текущее количество цифр=0. Есть массив. Перебираем все элементы. Если элемент-цифра, прибавляем к текущему количеству 1. Если не цифра, то сравниваем текущее количество цифр с максимальным, и заменяем текущее на максимальное, если максимальное меньше. Потом обнуляем текущее значение и топаем дальше .
FedVetal
0 / 0 / 0
Регистрация: 29.08.2012
Сообщений: 53
07.12.2012, 04:14  [ТС]     Создать програму, которая в символьном масиве находит наибольшое количество цифр идущих подряд #3
а можеш подсказать как реализовать
особенно сравнение макс с текущим количеством цыфр

Добавлено через 33 минуты
вот что получилось только почему то зацыкливается

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
#include<iostream>
#include<cstdio>
#include<stdio.h>
#include<string.h>
using namespace std;
int main()
 
{setlocale(0,"");
 
char a[100];
 
int c;
 
        cout<<"Введите текст 1рядка ";
 
 
    gets(a);
    
    int r=strlen(a);
    
 
    cout<<a;
    cout<<endl;
    int b;
        
 
b=0;int max;
max=0;
for(int i=0;i<r;i++)
    {o:for(int j=0;j<r;i++)
    
if (!isalpha(a[i]) && !ispunct(a[i]) &&  !isspace(a[i]))
    
    {b++;}
if (isalpha(a[i]) && ispunct(a[i]) &&  isspace(a[i]))
    {if(max>b){max=max;}
    if(max<b){max=b;}
    cout<<"a";}
    
    goto o;}
 
cout<<max;
    cout<<b<<endl;
 
    return 0;}
Добавлено через 8 минут
или так тоже ошибка



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
#include<iostream>
#include<cstdio>
#include<stdio.h>
#include<string.h>
using namespace std;
int main()
 
{setlocale(0,"");
 
char a[100];
 
int c;
 
        cout<<"Введите текст 1рядка ";
 
 
    gets(a);
    
    int r=strlen(a);
    
 
    cout<<a;
    cout<<endl;
    int b;
        
 
b=0;int max;
max=0;
for(int i=0;i<r;i++)
    {o:for(int j=0;j<r;i++)
    
if (!isalpha(a[i]) && !ispunct(a[i]) &&  !isspace(a[i]))
    
    {b++;}
if (isalpha(a[i]) && ispunct(a[i]) &&  isspace(a[i]))
    {if(max>b){max=max;}
    if(max<b){max=b;}
    cout<<"a";}
    if(i<r)
        {goto o;}
    else goto exit ;}
exit:
cout<<max;
    cout<<b<<endl;
 
    return 0;}
Добавлено через 1 час 33 минуты
Так тоже не выдает то что мне нада


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
#include<iostream>
#include<cstdio>
#include<stdio.h>
#include<string.h>
using namespace std;
int main()
 
{setlocale(0,"");
 
char a[100];
 
 
 
        cout<<"Введите текст 1рядка ";
 
 
    gets(a);
    
    int r=strlen(a);
    
 
    cout<<a;
    cout<<endl;
    int b;
        
 
int max;
max=0;int x;
x=0;
for(int i=0;i<r;i++)
    {o:b=0;
    
c:if (!isalpha(a[i]) && !ispunct(a[i]) &&  !isspace(a[i]))
    
    {cout<<"a";
b++;
x++;
if(x<r)
    {goto c;}
else goto exit;}
else
    {cout<<"b";
        if(max<b){max=b;}
        
        x++;
        if(x<r)
        {goto o;}
        else goto exit ;}}
    
    
 
exit:
cout<<endl<<max<<"as";
    cout<<endl<<b<<endl;
 
    return 0;}
kiruhka
1 / 1 / 0
Регистрация: 08.09.2009
Сообщений: 103
07.12.2012, 05:33     Создать програму, которая в символьном масиве находит наибольшое количество цифр идущих подряд #4
Пожалуйста напишите пример вводимой строки?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
12286 / 6973 / 784
Регистрация: 27.09.2012
Сообщений: 17,286
Записей в блоге: 2
Завершенные тесты: 1
07.12.2012, 08:48     Создать програму, которая в символьном масиве находит наибольшое количество цифр идущих подряд #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream> 
int main(){
    char str[]="my name 3399 984 klk 999997";
 
    int countmax=0;
    int count=0;
    for(char *p=str;*p;++p){
        if(*p==' ') continue;
        if(*p>47 && *p<58)
            ++count;
        else{
            if(count>countmax)
                countmax=count;
            count=0;
        }
    }
    if(count>countmax)
        countmax=count;
    std::cout<<countmax;
    std::cin.get();
    return 0;
}
FedVetal
0 / 0 / 0
Регистрация: 29.08.2012
Сообщений: 53
09.12.2012, 16:47  [ТС]     Создать програму, которая в символьном масиве находит наибольшое количество цифр идущих подряд #6
Цитата Сообщение от Croessmah Посмотреть сообщение
#include <iostream>
int main(){
* * char str[]="my name 3399 984 klk 999997";
int countmax=0;
* * int count=0;
* * for(char *p=str;*p;++p){
* * * * if(*p==' ') continue;
* * * * if(*p>47 && *p<58)
* * * * * * ++count;
* * * * else{
* * * * * * if(count>countmax)
* * * * * * * * countmax=count;
* * * * * * count=0;
* * * * }
* * }
* * if(count>countmax)
* * * * countmax=count;
* * std::cout<<countmax;
* * std::cin.get();
* * return 0;
}

подскажите пжл что в етой програме делают ети три строчки




Цитата Сообщение от Croessmah Посмотреть сообщение
for(char *p=str;*p;++p){
* * * * if(*p==' ') continue;
* * * * if(*p>47 && *p<58)
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
12286 / 6973 / 784
Регистрация: 27.09.2012
Сообщений: 17,286
Записей в блоге: 2
Завершенные тесты: 1
09.12.2012, 22:42     Создать програму, которая в символьном масиве находит наибольшое количество цифр идущих подряд #7
Цитата Сообщение от FedVetal Посмотреть сообщение
подскажите пжл что в етой програме делают ети три строчки
C++
1
for(char *p=str;*p;++p)
Создаем указатель на char и инициализируем его адресом строки (*p=str)
*p - разыменовываем указатель, если там содержится символ конца строки '\0', то прекращаем цикл, иначе продолжаем
++p - итерация указателя
C++
1
if(*p==' ') continue;
Если текущий символ, по которому проходим - пробел, то переходим сразу на следующую итерацию.
Последовательность цифр с пробелами "123 45"
С этой строчкой длина последовательности цифр будет 5, без нее - 3.
C++
1
if(*p>47 && *p<58)
Если код текущего символа лежит в интервале [48;57], то это цифра, поэтому увеличиваем счетчик count.
Если это не цифра, то сравниваем count с максимальной длиной. Если count больше максимальной длины, тогда
C++
1
countmax=count
FedVetal
0 / 0 / 0
Регистрация: 29.08.2012
Сообщений: 53
09.12.2012, 23:00  [ТС]     Создать програму, которая в символьном масиве находит наибольшое количество цифр идущих подряд #8
понял все кроме первой строчки можеш про первую поподробнее,или как его можно по другому записать,попроще что значит*р?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
12286 / 6973 / 784
Регистрация: 27.09.2012
Сообщений: 17,286
Записей в блоге: 2
Завершенные тесты: 1
09.12.2012, 23:04     Создать програму, которая в символьном масиве находит наибольшое количество цифр идущих подряд #9
Разыменование указателя. Вы с указателями вообще знакомы?

Добавлено через 1 минуту
Можно заменить на:
C++
1
2
3
4
5
6
7
8
9
10
    for(int i=0;str[i];++i){
        if(str[i]==' ') continue;
        if(str[i]>47 && str[i]<58)
            ++count;
        else{
            if(count>countmax)
                countmax=count;
            count=0;
        }
    }
Так, наверное, понятнее
FedVetal
0 / 0 / 0
Регистрация: 29.08.2012
Сообщений: 53
09.12.2012, 23:27  [ТС]     Создать програму, которая в символьном масиве находит наибольшое количество цифр идущих подряд #10
Вот что у меня получилось я ее переделал под себя немного упростил может кому пригодится


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
#include <iostream> 
using namespace std;
int main(){
    char str[100];
    
    setlocale(0,"");
    cout<<"Введите елементы масива"<<endl;
    gets(str);
 
    int max=0;
    int b=0;
    for(int i=0;str[i];i++){
       
        if(isdigit(str[i]))
            b++;
        else{
            if(b>max)
                max=b;
            b=0;
        }
    }
    if(b>max)
        max=b;
  cout<<max<<endl;
    
    return 0;
}
спасибо всем кто помог....
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2012, 23:36     Создать програму, которая в символьном масиве находит наибольшое количество цифр идущих подряд
Еще ссылки по теме:

C++ Наибольшее количество идущих подряд цифр
C++ Дан текст. Найти наибольшее количество подряд идущих цифр
C++ Определить наличие в заданном числе подряд идущих цифр
C++ Дан текст, содержащий цифры. Найти наибольшее количество идущих подряд цифр
Найти наибольшее количество подряд идущих цифр C++

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

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
12286 / 6973 / 784
Регистрация: 27.09.2012
Сообщений: 17,286
Записей в блоге: 2
Завершенные тесты: 1
09.12.2012, 23:36     Создать програму, которая в символьном масиве находит наибольшое количество цифр идущих подряд #11
Цитата Сообщение от FedVetal Посмотреть сообщение
немного упростил
Введите текст на русском языке
Yandex
Объявления
09.12.2012, 23:36     Создать програму, которая в символьном масиве находит наибольшое количество цифр идущих подряд
Ответ Создать тему
Опции темы

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