1. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

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

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

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

    Vunderkind Active Member

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

    Vunderkind Active Member

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

    Vunderkind Active Member

    Репутация:
    0
    Регистрация:
    26 окт 2010
    Сообщения:
    27
    Симпатии:
    0
    Код:
    #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

    Репутация:
    0
    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    Только что похожий пример писал... :)))
    Только со словами ;-)
    Код:
    #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

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

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

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