1. Пользуйтесь тегами кода. - [code] ... [/code] 2. Точно указывайте язык, название и версию компилятора (интерпретатора). 3. Название темы должно быть информативным. В описании темы указываем язык!!!
Помогите пожалуйста написать программку. Буду очень благодарна
Вот что-то вроде алгоритма: программка идет по заданному тексту (одномерному массиву), если встречается буква, то идем далее, если цифра или другой символ, счётчик +1 данного участка, запоминаем счётчики на отд. участках, заем они сравниваются, программка выдает максимальный.
Код
Я хотела &!123 бы быть 8936!, крев едкой! :blum: Ответ:6
Можно поподробнее, мы только начали на Visual C++.net 2003 программировать, нам нельзя использовать классы, и обычно программку мы начинаем следующим образом:
#include <iostream> #include <conio.h> using spacename std;
int main() { ... getch(); return 0; }
Да и как это будет выглядеть, если пользователь сам будет вводить эту строку символов (текст)??
А где ты здесь классы увидела? Это вообще практически чистый С, а не С++. А вот смешивать одно с другим, как этого хочешь ты (в частности, вроде бы и С++, но и классы не использовать, хотя std почему-то можно) я бы не советовал... Как строку представлять, например, будешь? Вообще-то подразумевается std::string, но ведь это - класс, тебе нельзя этим пользоваться...
Если непонятно использование оператора ?: - то вот то же самое, но с if-ами:
#include <ctype.h> #include <stdio.h>
int main() { char s[256]; // Буфер под строку int count, max = 0;
gets(s); // читаем строку с клавиатуры... Если хочешь, можешь заменить на cin.getline(s, 256);
// для каждого символа строки проделываем следующее for(char *p = s, count = 0; *p; p++) // если символ - буква или пробел (32 - это код пробела) ... if(isalpha(*p) || *p == 32) { // ... то если полученное на данный момент число символов в серии больше максимального if(count > max) { max = count; // тогда запоминаем его как максимальное count = 0; // а собственно счетчик - обнуляем } } else count += 1; // если же это не буква и не пробел, то увеличиваем счетчик символов
printf("%d", max); // печатаем результат. При желании можно заменить // на cout << "max = " << max << endl; return 0; }
Я уточнила, как программка должна работать, пользователь должен сам ввести строку символов, включающую буквы, цифры, символы и пробелы. Но пробелы не считаются. Можно ли это сделать в программке и как?
Вместо команды:
printf("%d", max);
можно ли использовать
cout<< cin>>
,
предварительно подключив
using spacename std;
и
#include <iostream>
Можно ли поподробнее объяснить процесс самого поиска этой максимальной серии символов?
Можно ли заменить эту программку следующим образом?
#include <iostream> #include <conio.h>
using namespace std;
int main() { char str[256]; // Буфер под строку int count, max = 0;
cin.getline(str, 256); // читаем строку с клавиатуры
// для каждого символа строки проделываем следующее for(int i=0, count = 0; str[i]!="/0"; i++) // если символ - буква или пробел (32 - это код пробела) ...
// ... то если полученное на данный момент число символов в серии больше максимального if(count > max) { max = count; // тогда запоминаем его как максимальное count = 0; // а собственно счетчик - обнуляем } } else count += 1; // если же это не буква и не пробел, то увеличиваем счетчик символов
cout << "max = " << max << endl;// печатаем результат getch(); return 0; }
Ну, и чем это отличается от того, что я написал в комментариях? Тем что в очередной раз изобретается велосипед вместо использования функции isalpha? Но тогда, прости, по какому праву ты используешь cout? Не пойдет, переписывай потоковый вывод с нуля тоже... Что за двойной стандарт? Либо ты пользуешься готовым везде, либо - нигде...
Ну, и чем это отличается от того, что я написал в комментариях? Тем что в очередной раз изобретается велосипед вместо использования функции isalpha? Но тогда, прости, по какому праву ты используешь cout? Не пойдет, переписывай потоковый вывод с нуля тоже... Что за двойной стандарт? Либо ты пользуешься готовым везде, либо - нигде...
Заменить можешь, просто isalpha несколько понятнее вереницы символов в условии, volvo ругается именно из за этого момента, потомучто в остальном программа идентична его варианту.
Заменить можешь, просто isalpha несколько понятнее вереницы символов в условии, volvo ругается именно из за этого момента, потомучто в остальном программа идентична его варианту.