Дан текст, содержащий цифры. Вывести ** экран наибольшую цифру. Нужно решить в С++ ,...

0 голосов
141 просмотров

Дан текст, содержащий цифры. Вывести на экран наибольшую цифру. Нужно решить в С++ , желательно с пояснениями.(решать используя строки и в стиле С)


Информатика (56 баллов) | 141 просмотров
0

Цифра может быть отрицательной?

Дан 1 ответ
0 голосов

#include
/*Библиотека стандартного ввода-вывода C++ */                     
#include
/*строки*/
#include
//Библиотека стандартного ввода-вывода C*/

using namespace std;

int main()
{
    short int maxDigit = -1;
    string str;
    printf("%s","Введите строку: ");
    cin >> str;                         
    /*Ввод строки*/
    for(int i = 0; str[i] != '\0'; i++)
    /*Цикл от начала строки до ее конца*/   
    /*('\0' - "нуль-терминатор" это символ конца строки)*/                            
    {                                         
        if((isdigit(str[i])) && (short int)(str[i]-48)>maxDigit)
        /*Если текуший символ цифра и она больше maxDigit)*/
        /*"(short int)...-48" преобразует char в short int*/           
        maxDigit = (short int)(str[i]-48);
        /*То maxDigit = этой цифре.*/  
    }   
    if(maxDigit == -1)  cout << "В строке нет цифр: " <<  "\n";    <br>    cout << "Наибольшая цифра: " << maxDigit << "\n";    <br>    /*Вывод */
    system("pause");
    return 0;
}

(3.7k баллов)
0

/*"(short int)...-48" преобразует char в short int*/ немного непонятна эта строкочка

0

if(maxDigit == -1) cout << "В строке нет цифр: " << "\n"; А почему такое условие?