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

Определить, имеются ли в случайном четырехзначном числе одинаковые цифры

25.12.2015, 23:06. Показов 2425. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не получается преобразовать int в string, как это можно сделать?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    int n,i;
    string ch;
    srand(time(0));
    n = rand() % 9000 + 1000;
    cout << "Namber random = " << n << endl;
    static_cast <char> (n);
    ch = n;
    int size = ch.length();
    for (i = 0; i < size; i++);
        {
            if (ch[i] == ch[2] || ch[3] || ch[4])
            {
                cout << "EST'" << endl;
            }
            else
            {
                cout << "NET" << endl;
            }
        }
    system("pause");
    return 0;
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.12.2015, 23:06
Ответы с готовыми решениями:

Если в четырехзначном числе введенному с клавиатуры, есть одинаковые цифры, то вывести 1, в противном случаe - любое другое число
Нужно написать программу: &quot;Если в четырехзначном числе введенному с клавиатуры, есть одинаковые...

Определить, имеются ли в случайном трехзначном числе одинаковые цифры
Определить, имеются ли в случайном трехзначном числе одинаковые цифры .

Верно ли, что в заданном четырехзначном числе ровно две одинаковые цифры
нужно определить, верно ли, что в заданном четырехзначном числе ровно две одинаковые цифры. можно...

Определить, есть ли в заданном четырехзначном числе а цифры 5 и 8
люди решите задачи ((((( а то накрыло по полной 12 долгов 1)определить в qbasic есть ли в...

6
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
25.12.2015, 23:09 2
Цитата Сообщение от Grin21 Посмотреть сообщение
static_cast <char> (n);
* * ch = n;
минимум так(если посмотреть на твой код)
C++
1
 ch  = static_cast <char> (n);
а вобще почитай
Перевод из integer в string
1
58 / 55 / 28
Регистрация: 20.05.2015
Сообщений: 256
25.12.2015, 23:25 3
Лучший ответ Сообщение было отмечено Grin21 как решение

Решение

Вообще, для строк я предпочитаю данный метод:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
 
string ToStr(int k)
{
    string mystr;
    stringstream ss;
    ss << k;
    ss >> mystr;
    return mystr;
}
 
int main()
{
    int n = rand() % 9000 + 1000;
    string mystr = ToStr(n);
}
И ещё, у вас сравнение идет немного неверное:

C++
1
if (ch[i] == ch[2] || ch[3] || ch[4])
Если хотите сравнить ch[i] с другими, то следует сделать так:

C++
1
if (ch[i] == ch[0]|| ch[i] == ch[1] || ch[i] == ch[2] || ch[i] == ch[3])
Индексы массива идут с нуля и сравнивать следует отдельно с каждым.
1
31 / 34 / 18
Регистрация: 30.09.2011
Сообщений: 202
25.12.2015, 23:36 4
Как-то так:
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
#include <iostream>
#include <sstream>
#include <cstdlib>
#include <ctime>
#include <string>
 
using namespace std;
 
 
int main ()
{
    setlocale (LC_ALL, "Russian");
    int n, j;
    string ch;
    srand(time(NULL));
    n = rand() % 9000 + 1000;
    cout << "Наше рандомное число: " << n << endl;
    stringstream ss;
    ss << n;
    ss >> ch;
    char check = 'n';
    for (j = 0; j < ch.size (); j++)
    {
        for (int i = j + 1; i < ch.size (); i++)
        {
            if (ch[j] == ch[i])
            { cout << "Есть совпадение"; check = 'y'; break; }
        }
    }
    if (check != 'y') cout << "Совпадений нет";
    cout << endl;
        system("pause");
    return 0;
}
P.S: для преобразования числа в строку я использовал stringstream... +пришлось немного код переписать, у тебя он не рабочий... ветвление if никуда не годится(
1
0 / 0 / 0
Регистрация: 25.09.2015
Сообщений: 31
25.12.2015, 23:45  [ТС] 5
Спасибо всем) Я сделал так:
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
string ToStr(int n)
{
    string str;
    stringstream ss;
    ss << n;
    ss >> str;
    return str;
}
 
int main()
{
    int n,i;
    //string ch;
    srand(time(0));
    n = rand() % 9000 + 1000;
    cout << "Namber random = " << n << endl;
    string str = ToStr(n);
    //ch = static_cast <char> (n);
    //int size = str.length();
    for (i = 1; i < str.length(); i++);
        {
            if (str[0] == str[1] || str[0] == str[2] || str[0] == str[3] || str[1] == str[2] || str[1] == str[3])
            {
                cout << "EST'" << endl;
            }
            else
            {
                cout << "NET" << endl;
            }
        }
    system("pause");
    return 0;
}
Работает)
0
58 / 55 / 28
Регистрация: 20.05.2015
Сообщений: 256
25.12.2015, 23:50 6
Grin21,
Забыли добавить в условие:

C++
1
str[2] == str[3]
Именно поэтому, наиболее предпочтительно использовать вложенный цикл для сравнения, как в примере выше.
1
31 / 34 / 18
Регистрация: 30.09.2011
Сообщений: 202
25.12.2015, 23:55 7
Не хочу тебя огорчать, но она не работает... вот тебе тест твоей же программы - говорит совпадений нет
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
36
37
38
39
40
#include <iostream>
#include <sstream>
#include <sstream>
#include <ctime>
 
using namespace std;
 
string ToStr(int n)
{
    string str;
    stringstream ss;
    ss << n;
    ss >> str;
    return str;
}
 
int main()
{
    int n,i;
    //string ch;
    srand(time(0));
    n = 4577;
    cout << "Namber random = " << n << endl;
    string str = ToStr(n);
    //ch = static_cast <char> (n);
    //int size = str.length();
    for (i = 1; i < str.length(); i++);
        {
            if (str[0] == str[1] || str[0] == str[2] || str[0] == str[3] || str[1] == str[2] || str[1] == str[3])
            {
                cout << "EST'" << endl;
            }
            else
            {
                cout << "NET" << endl;
            }
        }
    system("pause");
    return 0;
}
Ошибка снова в ветвлении if... цикл убери, он там не нужен
1
25.12.2015, 23:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.12.2015, 23:55
Помогаю со студенческими работами здесь

В четырехзначном натуральном числе определить наименьшую и наибольшую цифры
привет всем!Кто сможет мне помочь,очень нужно,я новичок совсем в с# и мне нужно сделать вот такое...

В четырехзначном числе определить сумму цифр, максимальную и минимальную цифры
нужно вести четырех значное число и определить : 1.Сумму цифр 2.найти максимальное и...

В четырёхзначном числе определить наименьшую цифру и заменить все цифры числа данной цифрой.
В четырёхзначном числе определить наименьшую цифру и заменить все цифры числа данной цифрой.

Определить имеются ли одинаковые цифры в двух числах
Ввести два числа N&lt;65000. Определить имеются ли в них одинаковые цифры и сколько. Предусмотреть...


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

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

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