Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.02.2016, 12:32   #1
Dima-91
Форумчанин
 
Регистрация: 28.09.2010
Сообщений: 198
По умолчанию Задание "температура" С++

Подскажите как из string выписать числа (наверное разделенные пробелом). И верен ли ход решения?

Текст задания:
Write a program that prints the temperature closest to 0 among input data. If two numbers are equally close to zero, positive integer has to be considered closest to zero (for instance, if the temperatures are -5 and 5, then display 5).

Перевод:
Написать программу, которая выводит температуру ближе к 0 среди входных данных. Если два числа одинаково близки к нулю, целое положительное число нужно считать близким к нулю (например, если температура -5 и 5, затем дисплей 5).

Также 2 строки ввода:
1. количество температур
2. температуры от -273 до 5526

Вот такой код от части есть:
Код:
int main()
{
    int n; // the number of temperatures to analyse
    cin >> n; cin.ignore();
    string temps; // the n temperatures expressed as integers ranging from -273 to 5526
    getline(cin, temps);
    string numbS;
    int numbI[];.
    int k = 0;
    for (int i = 0; i <= size.temps; i++)
    {
        
        if ( temps[i] != ' ' && i != size.temps)
        {
            numbS += temps[i];
        }
        else if (temps[i] == ' ')           
        {
            numbI[] = new numbI[];
            numbI[k] = StrToInt(numbS);
            k++;
            nubmS.clear; 
        }  
        else
        {
            cout << "Don't correct parametr" << endl;   
        } 
    }
    for (int i = 0; i <= k; i ++)     
    {
        if (numbI < abs(StrToInt(numbS))
            {
                numbI = StrToInt(numbS);
            }
            else if ( numbI < StrToInt(numbS))
            {
                numbI = StrToInt(numbS);        
            }
            
    }
       
    // Write an action using cout. DON'T FORGET THE "<< endl"
    // To debug: cerr << "Debug messages..." << endl;

    cout << "result" << endl;
}
P.s.: задание с сайта программирования, уровень легкий (4 задание Temperatures )
Dima-91 вне форума Ответить с цитированием
Старый 24.02.2016, 12:46   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Есть же std::stoi и друзья. Да и заниматься поиском в массиве интов через конвертирование в строку и обратно как-то не то...
p51x вне форума Ответить с цитированием
Старый 24.02.2016, 12:47   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Причем тут свободное общение?

Зачем читать строку если нужны числа?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 24.02.2016, 13:02   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
Зачем читать строку если нужны числа?
Ну также прощееее...
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Для заданной строки определить все входящие в неё символ. Например: строка "abccbbabbac" состоит из символов "a", "b" и "c" Sandakan01 Помощь студентам 1 24.02.2016 03:20
Помогите решить задачу в VBA "Температура человека" Versifikator Помощь студентам 1 06.12.2007 23:58