0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 43
1

Преобразование символов в числа

09.04.2013, 18:10. Показов 3245. Ответов 11
Метки нет (Все метки)

Ребят помогите решить задачу плииз!! дан текст, содержащий цифры.Заменить все нечетные цифры наименьшей цифрой,содержащейся в данном тексте.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.04.2013, 18:10
Ответы с готовыми решениями:

Преобразование символов в числа
Дан текст, содержащий целые числа. Вывести на экран сумму нечетных чисел. Ребят помогите...

Преобразование символов в числа
Дан текст. Определить, является ли он правильной десятичной записью целого числа.

Преобразование символов в числа
Дан текст, имеющий вид: dl + d2 + ... + dn, где di — цифры. Вычислить записанную в тексте сумму.

Преобразование символов в числа
Дан текст, имеющий вид: dl + d2 + ... + dn, где di — цифры. Вычислить записанную в тексте сумму....

11
381 / 352 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
09.04.2013, 20:06 2
Nikita9413,

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
 
bool pred_min(char elem1, char elem2)
{
    return elem1 - '0' < elem2 - '0';
}
 
bool predikat(char elem){
    return (((elem - '0') % 2) != 0);
}
 
int main()
{
    string str("123456789");
 
    char min = *min_element(str.begin(), str.end(), pred_min);
 
    replace_if(str.begin(), str.end(), predikat, min);
 
    cout << str << endl;
    cout << "\n\n";
    return 0;
}
1
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 43
09.04.2013, 20:30  [ТС] 3
не совсем понятно, а можно сделать чтобы строку с клавиатуры можно было вводить?
0
381 / 352 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
09.04.2013, 20:34 4
Nikita9413,

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
 
bool pred_min(char elem1, char elem2)
{
    return elem1 - '0' < elem2 - '0';
}
 
bool predikat(char elem){
    return (((elem - '0') % 2) != 0);
}
 
int main()
{
    string str;
    cout << "Enter the string: ";
        getline(cin, str, '\n');
 
    char min = *min_element(str.begin(), str.end(), pred_min);
 
    replace_if(str.begin(), str.end(), predikat, min);
 
    cout << "New string: " << str << endl;
    cout << "\n\n";
    return 0;
}
1
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 43
09.04.2013, 20:39  [ТС] 5
я извиняюсь за наглость, но можно сделать так чтобы было понятно первокурснику)) просто в этом коде очень трудно разобраться, я и половины функций не знаю
0
381 / 352 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
09.04.2013, 20:48 6
Nikita9413, так понятней?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
 
int main()
{
    string str;
    cout << "Enter the string: ";
        getline(cin, str, '\n');
 
    char min = str[0];
 
    /*ищем минимум*/
    for(unsigned i = 0; i < str.length(); ++i){
        if((str[i] - '0') < (min - '0')){           //str[i] - '0' дает число вместо символа
            min = str[i];
        }
    }
 
    /*заменяем нечетные минимумом*/
    for(unsigned i = 0; i < str.length(); ++i){
        if(((str[i] - '0') % 2) != 0){
            str[i] = min;
        }
    }
 
    cout << "New string: " << str << endl;
    cout << "\n\n";
    return 0;
}
1
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 43
09.04.2013, 21:43  [ТС] 7
да, спасибо

Добавлено через 34 минуты
еще вопрос, если в тексте содержаться еще и слова то код работает не корректно, как это исправить?
0
381 / 352 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
09.04.2013, 21:49 8
Nikita9413, сделать проверку, является символ числом или нет, есть функция стандартная isalpha
1
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 43
09.04.2013, 21:57  [ТС] 9
не совсем понятно, а можно пример использования этой функции?
0
381 / 352 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
09.04.2013, 22:01 10
http://www.cplusplus.com/reference/locale/isalpha/
0
Каратель
Эксперт С++
6606 / 4025 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
09.04.2013, 22:06 11
Цитата Сообщение от yoghurt92 Посмотреть сообщение
elem1 - '0' < elem2 - '0'
elem1 < elem2
1
381 / 352 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
09.04.2013, 22:11 12
Nikita9413, вот, она тут только для латинских букв

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
 
int main()
{
    string str;
    cout << "Enter the string: ";
        getline(cin, str, '\n');
 
    char min = str[0];
 
    /*ищем минимум*/
    for(unsigned i = 0; i < str.length(); ++i){
        if(isdigit(str[i])){
            if((str[i] - '0') < (min - '0')){           //str[i] - '0' дает число вместо символа
                min = str[i];
            }
        }
    }
 
    /*заменяем нечетные минимумом*/
    for(unsigned i = 0; i < str.length(); ++i){
        if(isdigit(str[i])){
            if(((str[i] - '0') % 2) != 0){
                str[i] = min;
            }
        }
    }
 
    cout << "New string: " << str << endl;
    cout << "\n\n";
    return 0;
}
Добавлено через 1 минуту
Jupiter, да конечно, можно и так
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.04.2013, 22:11
Помогаю со студенческими работами здесь

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

Преобразование символов в числа и вычисление их суммы
Всем доброго времени суток. Дан текст,имеющий вид: d1+d2+...+dn, где di-цифры. Вычислить...

Преобразование символов в числа
Есть массив символов Нужно преобразовать символы стоящие на нечетных позициях в числа и найти их...

Преобразование числа в строку символов
Здравствуйте , давно хотел задать вопрос. Каким образом можно число преобразовать в строку...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru