Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
MerlinLegend
1 / 1 / 1
Регистрация: 11.04.2011
Сообщений: 109
#1

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

15.05.2012, 22:15. Просмотров 853. Ответов 21
Метки нет (Все метки)

Здравствуйте. Помогите с программой

Дан текст; найти наибольшее количество цифр идущих в нем подряд.
Способ задания текста может выбираться в зависимости от используемого языка программирования и от того, какие сложности готов преодолевать решающий задачу. Текст может быть последовательностью символов (в частности—содержимым символьного файла), строкой, группой строк (в частности — содержимым текстового файла) и т. д. Надо сделать так чтобы в консоли сам набирал команды. Заранее спасибо
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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2012, 22:15
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Переделать программу (C++):

Нужно программу на Паскале переделать в программу на С++
Помогите, пожалуйста!!! У меня есть программа на Паскале , а нужно ее...

Переделать программу 1 в программу 2 с использованием функций
проблема в том, что компилятор не ругается, но программа зависает при...

переделать программу
Помогите изменить программу чтобы она была гибкой(Чтоб всегда можно было...

Переделать программу
помогите изменить программу, программа ищет наименьший элемент...

Переделать программу из С# в С++
Нашел на форуме такой код using System; using System.Collections.Generic;...

Переделать программу.
Эта программа определяет какие слова встречаються в строчке по одному разу.Надо...

21
Ternsip
663 / 191 / 29
Регистрация: 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;
}
1
MerlinLegend
1 / 1 / 1
Регистрация: 11.04.2011
Сообщений: 109
15.05.2012, 22:23  [ТС] #3
Он работает, но я не могу вводит данные через консоль. Они заданы как const. Не могу сделать чтобы ввод был через консоль
0
Ternsip
663 / 191 / 29
Регистрация: 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;
}
//У меня был баг в коде, поправьте
1
DeathMetal
46 / 46 / 13
Регистрация: 05.05.2012
Сообщений: 178
15.05.2012, 22:26 #5
Ну если надо вводить, значить хотя б cin >> должен быть. А тут ничего нет подобного.
0
Ternsip
663 / 191 / 29
Регистрация: 10.05.2012
Сообщений: 595
15.05.2012, 22:27 #6
А у меня ввод из файла, только вывод в консоль

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

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

Добавлено через 43 секунды
Да через консоль
0
Ternsip
663 / 191 / 29
Регистрация: 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;
}
// Когда введёте / прога закончит ввод из консоли
0
MerlinLegend
1 / 1 / 1
Регистрация: 11.04.2011
Сообщений: 109
15.05.2012, 22:38  [ТС] #10
У меня почему то не создаеться
0
vetal10
35 / 35 / 11
Регистрация: 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";
0
Ternsip
663 / 191 / 29
Регистрация: 10.05.2012
Сообщений: 595
15.05.2012, 22:44 #12
Цитата Сообщение от MerlinLegend Посмотреть сообщение
У меня почему то не создаеться
На чём пишете то?
0
MerlinLegend
1 / 1 / 1
Регистрация: 11.04.2011
Сообщений: 109
15.05.2012, 22:46  [ТС] #13
Спасибо, но результат не выдает. Пиши и пиши ничего не считает

Добавлено через 27 секунд
Visual Studio 2010
0
vetal10
35 / 35 / 11
Регистрация: 25.05.2010
Сообщений: 211
15.05.2012, 22:47 #14
MerlinLegend, мое тоже не работает??
0
MerlinLegend
1 / 1 / 1
Регистрация: 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!";
0
Ternsip
663 / 191 / 29
Регистрация: 10.05.2012
Сообщений: 595
15.05.2012, 22:55 #16
Цитата Сообщение от MerlinLegend Посмотреть сообщение
Спасибо, но результат не выдает. Пиши и пиши ничего не считает

Добавлено через 27 секунд
Visual Studio 2010
Если закомпилилось, тогда после теста в консоли поставьте / и нажмите Энтер и всё ок будет
0
vetal10
35 / 35 / 11
Регистрация: 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;
}
0
Ternsip
663 / 191 / 29
Регистрация: 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);
0
MerlinLegend
1 / 1 / 1
Регистрация: 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).
0
vetal10
35 / 35 / 11
Регистрация: 25.05.2010
Сообщений: 211
15.05.2012, 23:05 #20
MerlinLegend, ты же пиши чей вариант ты пробуешь.
0
15.05.2012, 23:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2012, 23:05
Привет! Вот еще темы с решениями:

Переделать программу из C# в C++
using System; using System.Collections.Generic; using System.Linq; using...

Переделать программу из C# в C++
using System; using System.Collections.Generic; using System.Linq; using...

Переделать программу с do while
Помогите пожалуйста переделать эту программу с do while #include...

Переделать программу
Есть готовая программа, но нужно её переделать так, чтобы она была с функциями,...


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

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

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