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

Переделать программу - C++

Восстановить пароль Регистрация
 
 
MerlinLegend
1 / 1 / 0
Регистрация: 11.04.2011
Сообщений: 109
15.05.2012, 22:15     Переделать программу #1
Здравствуйте. Помогите с программой

Дан текст; найти наибольшее количество цифр идущих в нем подряд.
Способ задания текста может выбираться в зависимости от используемого языка программирования и от того, какие сложности готов преодолевать решающий задачу. Текст может быть последовательностью символов (в частности—содержимым символьного файла), строкой, группой строк (в частности — содержимым текстового файла) и т. д. Надо сделать так чтобы в консоли сам набирал команды. Заранее спасибо
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
#include "stdafx.h"
#include <cstdlib>
#include <iostream>
#include <cctype>
 
using namespace std;
 
int main(int argc, char *argv[])
{
   int i=0, j, sum=0, cont;
   char *str = "Hello 123 country 5658546 my, i'm your son 1116, yeah!";
   
   while(str[i] != '\0') //Пока не конец строки
   {
        if(isdigit(str[i]))  //если символ - цифра, то
        {
            j=i;
            cont=0;
            while(isdigit(str[j])) // ведем подсчет до тех пор пока цифра.
            {
                 cont++;
                 j++;
            }
            if(sum<cont) sum=cont;
        i=j;
        }
        i++;
   }
    cout << sum << "\n";
          
    system("PAUSE");
    return EXIT_SUCCESS;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ternsip
 Аватар для Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
15.05.2012, 22:22     Переделать программу #2
Ваш код не работает? Мне не ясна суть проблемы...

Добавлено через 4 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <cmath>
#include <fstream>
using namespace std;
int main(){
    ifstream in("input.txt");
    char ch;
    int j=0,k=0;
    while (in>>ch) if ('0'<=ch && ch<='9') j++;else {if (j>k) k=j;j=0;}
    cout<<k;
    getch();
    return 0;
}
MerlinLegend
1 / 1 / 0
Регистрация: 11.04.2011
Сообщений: 109
15.05.2012, 22:23  [ТС]     Переделать программу #3
Он работает, но я не могу вводит данные через консоль. Они заданы как const. Не могу сделать чтобы ввод был через консоль
Ternsip
 Аватар для Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
15.05.2012, 22:25     Переделать программу #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <cmath>
#include <fstream>
using namespace std;
int main(){
    ifstream in("input.txt");
    char ch;
    int j=0,k=0;
    while (in>>ch) if ('0'<=ch && ch<='9') j++;else {if (j>k) k=j;j=0;}
    if (j>k) k=j;
    cout<<k;
    getch();
    return 0;
}
//У меня был баг в коде, поправьте
DeathMetal
45 / 45 / 2
Регистрация: 05.05.2012
Сообщений: 178
15.05.2012, 22:26     Переделать программу #5
Ну если надо вводить, значить хотя б cin >> должен быть. А тут ничего нет подобного.
Ternsip
 Аватар для Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
15.05.2012, 22:27     Переделать программу #6
А у меня ввод из файла, только вывод в консоль

Добавлено через 15 секунд
Цитата Сообщение от DeathMetal Посмотреть сообщение
Ну если надо вводить, значить хотя б cin >> должен быть. А тут ничего нет подобного.
in>>ch

Добавлено через 49 секунд
Вы наоборот хотите через консоль ввести?
DeathMetal
45 / 45 / 2
Регистрация: 05.05.2012
Сообщений: 178
15.05.2012, 22:28     Переделать программу #7
Ternsip, теперь увидел, извиняюсь.
MerlinLegend
1 / 1 / 0
Регистрация: 11.04.2011
Сообщений: 109
15.05.2012, 22:32  [ТС]     Переделать программу #8
Программа не работает. При запуске выдаёт 0

Добавлено через 43 секунды
Да через консоль
Ternsip
 Аватар для Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
15.05.2012, 22:35     Переделать программу #9
Цитата Сообщение от MerlinLegend Посмотреть сообщение
Программа не работает. При запуске выдаёт 0

Добавлено через 43 секунды
Да через консоль
Дорогой, у вас в папке с приложением или проектом должен быть input.txt файл, в котором написанны ваши символы и цифры

Добавлено через 26 секунд
Ага, всё увидел

Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <cmath>
#include <fstream>
using namespace std;
int main(){
    char ch;
    int j=0,k=0;
    while (cin>>ch) if ('0'<=ch && ch<='9') j++;else {if (j>k) k=j;j=0;if (ch=='/') break;}
    if (j>k) k=j;
    cout<<k;
    getch();
    return 0;
}
// Когда введёте / прога закончит ввод из консоли
MerlinLegend
1 / 1 / 0
Регистрация: 11.04.2011
Сообщений: 109
15.05.2012, 22:38  [ТС]     Переделать программу #10
У меня почему то не создаеться
vetal10
35 / 35 / 5
Регистрация: 25.05.2010
Сообщений: 211
15.05.2012, 22:42     Переделать программу #11
ввод с консоли
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
char str[1024];
fgets(str,[1024],stdin);
while(str[i] != '\0') //Пока не конец строки
   {
        if(isdigit(str[i]))  //если символ - цифра, то
        {
            j=i;
            cont=0;
            while(isdigit(str[j])) // ведем подсчет до тех пор пока цифра.
            {
                 cont++;
                 j++;
            }
            if(sum<cont) sum=cont;
        i=j;
        }
        i++;
   }
    cout << sum << "\n";
Ternsip
 Аватар для Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
15.05.2012, 22:44     Переделать программу #12
Цитата Сообщение от MerlinLegend Посмотреть сообщение
У меня почему то не создаеться
На чём пишете то?
MerlinLegend
1 / 1 / 0
Регистрация: 11.04.2011
Сообщений: 109
15.05.2012, 22:46  [ТС]     Переделать программу #13
Спасибо, но результат не выдает. Пиши и пиши ничего не считает

Добавлено через 27 секунд
Visual Studio 2010
vetal10
35 / 35 / 5
Регистрация: 25.05.2010
Сообщений: 211
15.05.2012, 22:47     Переделать программу #14
MerlinLegend, мое тоже не работает??
MerlinLegend
1 / 1 / 0
Регистрация: 11.04.2011
Сообщений: 109
15.05.2012, 22:52  [ТС]     Переделать программу #15
Да ваше тоже. В консоль вводить можно, но ничего не делает

Добавлено через 1 минуту
Вы можете мою переделать?
что нужно вместо этого написать чтобы ввод был через консоль
C++
1
char *str = "Hello 123 country 5658546 my, i'm your son 1116, yeah!";
Ternsip
 Аватар для Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
15.05.2012, 22:55     Переделать программу #16
Цитата Сообщение от MerlinLegend Посмотреть сообщение
Спасибо, но результат не выдает. Пиши и пиши ничего не считает

Добавлено через 27 секунд
Visual Studio 2010
Если закомпилилось, тогда после теста в консоли поставьте / и нажмите Энтер и всё ок будет
vetal10
35 / 35 / 5
Регистрация: 25.05.2010
Сообщений: 211
15.05.2012, 22:55     Переделать программу #17
MerlinLegend, у меня все считает)
Вот полный код.
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
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
 
 
int main(int argc, char *argv[])
{
   int i=0, j, sum=0, cont;
   char str[1024] ;
   fgets(str,1024,stdin);
   while(str[i] != '\0') //Пока не конец строки
   {
        if(isdigit(str[i]))  //если символ - цифра, то
        {
            j=i;
            cont=0;
            while(isdigit(str[j])) // ведем подсчет до тех пор пока цифра.
            {
                 cont++;
                 j++;
            }
            if(sum<cont) sum=cont;
        i=j;
        }
        i++;
   }
   printf("%d\n",sum);
          
   return EXIT_SUCCESS;
}
Ternsip
 Аватар для Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
15.05.2012, 22:59     Переделать программу #18
Цитата Сообщение от MerlinLegend Посмотреть сообщение
что нужно вместо этого написать чтобы ввод был через консоль
C++
1
char *str = "Hello 123 country 5658546 my, i'm your son 1116, yeah!";
getline(cin,char *str);

Добавлено через 3 минуты
#include <string>
string str;
getline(cin,str);
MerlinLegend
1 / 1 / 0
Регистрация: 11.04.2011
Сообщений: 109
15.05.2012, 23:03  [ТС]     Переделать программу #19
Программа компиляеться, но результата нет. "labora.exe": Загружено: "C:\Users\OLEG VORONIN\Desktop\5\labora\Debug\labora.exe", Символы загружены.
"labora.exe": Загружено: "C:\Windows\SysWOW64\ntdll.dll", Невозможно найти или открыть файл PDB
"labora.exe": Загружено: "C:\Windows\SysWOW64\kernel32.dll", Невозможно найти или открыть файл PDB
"labora.exe": Загружено: "C:\Windows\SysWOW64\KernelBase.dll", Невозможно найти или открыть файл PDB
"labora.exe": Загружено: "C:\Windows\SysWOW64\msvcr100d.dll", Символы загружены.
Программа "[2864] labora.exe: Машинный код" завершилась с кодом 0 (0x0).
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2012, 23:05     Переделать программу
Еще ссылки по теме:

C++ Переделать программу
C++ Переделать программу
Переделать программу из C# в C++ C++
Переделать программу C++
C++ Переделать программу

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

Или воспользуйтесь поиском по форуму:
vetal10
35 / 35 / 5
Регистрация: 25.05.2010
Сообщений: 211
15.05.2012, 23:05     Переделать программу #20
MerlinLegend, ты же пиши чей вариант ты пробуешь.
Yandex
Объявления
15.05.2012, 23:05     Переделать программу
Ответ Создать тему
Опции темы

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