Самое длинное цисло

Тема в разделе "C/C++/C#", создана пользователем Vunderkind, 6 ноя 2010.

Статус темы:
Закрыта.
  1. Vunderkind

    Vunderkind Active Member

    Регистрация:
    26 окт 2010
    Сообщения:
    27
    Симпатии:
    0
    Вводится 3 числа.Нужно найти и вывести наибольшее из трех чисел,длина которых не должна быть больше 10^100 Напр:
    Ввод
    688285 283 95439238230983902
    Вывод
    95439238230983902
     
  2. Vunderkind

    Vunderkind Active Member

    Регистрация:
    26 окт 2010
    Сообщения:
    27
    Симпатии:
    0
    Да,я пытался решить самостоятельно,запустли цикл,поставил условие если цифра то получаю в массив,но у меня не получается взять с массива самое длинное число и вывести как показано в примере
     
  3. Vunderkind

    Vunderkind Active Member

    Регистрация:
    26 окт 2010
    Сообщения:
    27
    Симпатии:
    0
    Код (Text):
    #include<iostream>
    using namespace std;
    int main(){
    char mas[1000];
    char a[1000];
    cin>>a;
    for(int i=0;i<strlen(a);i++)
    if(isdigit(a[i])){
    mas[i]=a[i];
    ..... а дальше как?
    return 0;}
     
  4. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    Только что похожий пример писал... :)))
    Только со словами ;-)
    Код (C++):
    #include <iostream>
    #include <ctype.h>

    using namespace std;

    int main()
    {
    int a;
    char ch[1000];
    cin.getline(ch,1000);

    int Max = 0;
    char buffer[128]; //Введем буферную переменную
    memset(buffer,0,128); //Обнулим ее
    char *pStr = buffer; //Введем указатель на буферную перемнную

    char Result[128]; //Результирующее слово
    memset(Result,0,128);

    for (int i = 0; i <= strlen(ch); i++) //Обойдем всю строку включая завершающий символ
    {
    if ((unsigned char)isdigit(ch[i])) //Если символ циферный то
    {
    if (strlen(buffer) ==0 && ch[i]=='0') continue; //Если начальные символы нули их мы писать не будем
    *pStr = ch[i]; //Посимвольно пишим символы в буфер из ch
    pStr++; //Сдвиг указателя
    }
    else if (strlen(buffer)) //Если же не циферный и в buffer - что то есть то
    {
    if (strlen(buffer) > Max)
    {
    strcpy(Result,buffer); //Скопируем из буфера в результат
    Max = strlen(buffer);
    }
    memset(buffer,0,128); //Обнулим буферную переменную
    pStr = buffer; //Установим указатель на начало буфера
    }
    }
    cout<<"Result : '"<<Result<<"'"<<endl; //Выведим результат
    cout<<"Result Format : ";
    for (int i = 0; i<strlen(Result); i++)
    {
    cout<<Result[i];
    if ((strlen(Result)-1-i)%3 == 0) cout<<" ";
    }


    }

    Добавлено: Про самое длинное забыл... Щас....
     
  5. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    Да просто думаю rrrFer, что все же средне-статистический "автор сообщений" читает сначало комент, а потом код (если вообще читает ;-) ) а не копирует, ну и в любом случае даже если не разбирается, то на подсознательном уровне у него откладывается что то ;-) Ну и по степенно уже думать начинают....
    Но это я так думаю)) Хотя иногда тут на форуме, начинаю сомневаться ;-))))))

    2 Vunderkind, верни задание, так реально не дается......
     
Загрузка...
Похожие Темы - Самое длинное цисло
  1. vellasha
    Ответов:
    4
    Просмотров:
    2.667
  2. PavelT100
    Ответов:
    3
    Просмотров:
    2.711
  3. AnnaD
    Ответов:
    2
    Просмотров:
    932
Статус темы:
Закрыта.

Поделиться этой страницей