Найти максимальное количество символов между двумя английскими заглавными буквами - C (СИ)
Формулировка задачи:
Нужна программа на C (не на C++), которая считает, максимальное кол-во символов между 2мя английскими заглавными буквами (ASCII)...
Пытался написать, отказывается работать (нужно использовать только стандартные getchar(); putchar (); и т.д.
Вот мой код, скажите пожалуйста что не так. Заранее благодарен (библиотеки естественно подключены)
#include <stdio.h>
#include <conio.h>
void main()
{
char text; // Текущий символ.
int number=0; // Переменная, для хранения кол-ва символов между заглавными буквами.
int maxnum=0; // Переменная, для хранения максимального кол-ва символов между заглавными буквами.
bool count=false; //Флаг, показывающий, идет ли подсчет или нет.
//Запрос ввода строки:
printf("Enter the string please (don't forget CTRL+Z at the end):\n");
text=getchar();
while (text!=EOF)
{
if ((text>64 && text<91) && count==false) // Заглавные английские буквы имеют код от 65 до 90
count=true; //Этот IF нужен на случай, если файл начинается не с заглавной буквы!
if (count==true && (text<65 || text>90))
number++;
if (count==true && (text>64 && text<91))
{
if (number>maxnum)
maxnum=number;
number=0;
}
text=getchar();
}
printf("%d", maxnum);
getch();
}
Помогите плиииз!
Странно...в Turbo C++ работает, в VS нет...кто нибудь объяснит в чем проблема?!
Решение задачи: «Найти максимальное количество символов между двумя английскими заглавными буквами»
textual
Листинг программы
bool count=false;
Объяснение кода листинга программы
- Переменная
countинициализируется значениемfalse. - Запускается цикл, который будет выполняться до тех пор, пока не будет найдено максимальное количество символов между двумя английскими заглавными буквами.
- В каждой итерации цикла проверяется текущий символ. Если текущий символ является английской заглавной буквой, то переменная
countустанавливается в значениеtrue. - Если переменная
countравнаtrue, то значение переменнойcountувеличивается на единицу. - Если переменная
countравнаfalse, то значение переменнойcountустанавливается в единицу. - Если переменная
countравнаtrue, то значение переменнойcountустанавливается в ноль. - Цикл продолжается до тех пор, пока не будет найдено максимальное количество символов между двумя английскими заглавными буквами.
- После завершения цикла, переменная
countсодержит максимальное количество символов между двумя английскими заглавными буквами. - Код завершается, возвращая значение переменной
count.