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

Найти 5 чисел удовлетворяющих условиям x1>=x2>=...>=x5 и x1+x2+x3+x4+x5=n

11.05.2020, 18:00. Показов 441. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
привет, народ. учусь на 1 курсе, изучаю С++. из за дистанционки тяжелее учиться в разы, а преподы отвечают очень долго. нужно написать 2 проги:

1. дано n. найти 5 чисел, чтобы x1>=x2>=...>=x5 и x1+x2+x3+x4+x5=n.

я написал код по холопски, особо не стал его делать "красивее". вроде все правильно, но программа ничего не выдает. смотрел много раз - не понимаю, в чем проблема.

2. вводятся символы, а результат =int. т.е. из строкового типа в int.
искал, как сделать, нашел только по С#. в С++ попробовал - не получается.

 Комментарий модератора 
П.5.16.Правил
Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема.

по первой задаче такой код у меня:
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
#include <cmath>
#include <iostream>
using namespace std;
int main()
{
    setlocale(LC_ALL, "ru");
    int x1, x2, x3, x4, x5, n, i = 0, xs;
    cout << "n="; cin >> n;
    x1 = 0, x2 = 1, x3 = 2, x4 = 3, x5 = 4; xs;
    while (i == 0)  // идея в противодействии. Цикл будет выполняться до тех пор, пока не будут соблюдены нужные условия
    {
        x1 = rand() % 1000, x2 = rand() % 1000, x3 = rand() % 1000, x4 = rand() % 1000, x5 = rand() % 1000;
        xs = x1 + x2 + x3 + x4 + x5;
        if ((x1 >= x2 && x2 >= x3 && x3 >= x4 && x4 >= x5) && (xs == n)) {
            i = 1;
            if (i == 1) {
                cout << x1 << endl << x2 << endl << x3 << endl << x4 << endl << x5;
                break;
            }
 
        }
 
    }
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.05.2020, 18:00
Ответы с готовыми решениями:

Найти последовательность всех пар чисел, удовлетворяющих следующим условиям
Делаю задание но не получается создать пару чисел, и не понятен тип результата int A = new...

Из диапозона целых чисел выделить множество чисел, удовлетворяющих условиям
Из диапозона целых чисел т... п выделить: 1) множество чисел, делящихся без остатка или на k, или...

Сумма десятеричных чисел, удовлетворяющих условиям
Нужно написать программу, которая находит сумму чисел (в 10ричной сс), которые в 16ричной сс: а)...

Сколько существует k значных чисел, удовлетворяющих следующим условиям
Сколько существует k-значных чисел, удовлетворяющих следующим условиям: 1. число содержит только...

13
1706 / 1106 / 337
Регистрация: 25.01.2019
Сообщений: 2,907
11.05.2020, 18:30 2
Цитата Сообщение от Acheron Посмотреть сообщение
из за дистанционки тяжелее учиться в разы,
ой, да ладно.
Цитата Сообщение от Acheron Посмотреть сообщение
// идея в противодействии. Цикл будет выполняться до тех пор, пока не будут соблюдены нужные условия
оно зависнет

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
41
42
43
44
45
46
#include <iostream>
#include <algorithm>
 
int main()
{
    /*1) : */
 
    double n;
    
    std::cout << "N=";
    std::cin >> n;
    
    double f[5] = { 0 };
 
    for (size_t r = 0; r < 4; ++r)
    {
        f[r] = rand() % 150031;
    }
    
    f[4] = n - (f[0] + f[1] + f[2] + f[3]);
    std::sort(f, f + 5);
 
    for (size_t r = 0; r < 5; ++r) std::cout << "\nX(" << r << ") = " << f[r];
 
 
    /*2) :*/
 
    std::cout << "\n\n2: \n";
 
    /*искал, как сделать, нашел только по С#.в С++ попробовал - не получается.*/
 
    char x = 1;
    int y;
 
    while (1)
    {
        std::cin >> x;
        /*вводятся символы, а результат =int*/
        /*искал, как сделать, нашел только по С#.в С++ попробовал - не получается.*/
        y = x; // // // // /// ///// // ///// / /  / / / //// /////****----- 
        std::cout << y << "\n";
    }
 
    system("pause");
    return 0;
}
0
2 / 2 / 0
Регистрация: 11.05.2020
Сообщений: 82
11.05.2020, 18:44  [ТС] 3
ты учился удаленно? если нет - могу заверить, что осваивать устаревшую на пол века программу вуза дома сложнее. по поводу кода - я не хотел, чтобы мне код писали, но спасибо. лучше подсказали. почему оно зависнет?

Добавлено через 2 минуты
Цитата Сообщение от Folian Посмотреть сообщение
/*искал, как сделать, нашел только по С#.в С++ попробовал - не получается.*/
char x = 1;
    int y;
while (1)
    {
        std::cin >> x;
        /*вводятся символы, а результат =int*/
        /*искал, как сделать, нашел только по С#.в С++ попробовал - не получается.*/
        y = x; // // // // /// ///// // ///// / /  / / / //// /////****-----
        std::cout << y << "\n";
    }
system("pause");
    return 0;
}
а это что? вторая программа про символы?
0
1706 / 1106 / 337
Регистрация: 25.01.2019
Сообщений: 2,907
11.05.2020, 19:21 4

Не по теме:

Преподавателю своему тыкать будешь и заверять его, исходя из своего богатейшего жизненного опыта. Ты мне кто? Приходят, жалуются на судьбу нелёгкую, всё им не так и не эдак, чего хотят объяснить нормально не могут; помогаешь забесплатно - ещё и обижаться успевают. И врут внаглую, за дурачков держат.

Код написали - радуйся, попробуй разобраться как работает; непонятно - спроси.



Цитата Сообщение от Acheron Посмотреть сообщение
почему оно зависнет?
Цитата Сообщение от Acheron Посмотреть сообщение
C++
1
if ((x1 >= x2 && x2 >= x3 && x3 >= x4 && x4 >= x5) && (xs == n))
прикинь вероятность исполнения этого условия, да черт с ним, вероятность xs == n отдельно уж хотя бы.

Цитата Сообщение от Acheron Посмотреть сообщение
а это что? вторая программа про символы?
это пример приведения char в int. Я не особо понял чего ты хочешь, то ли это, то ли строку в число.
0
2 / 2 / 0
Регистрация: 11.05.2020
Сообщений: 82
11.05.2020, 19:37  [ТС] 5
Цитата Сообщение от Folian Посмотреть сообщение
#include <iostream>
#include <algorithm>
int main()
{
    /*1) : */
double n;
std::cout << "N=";
    std::cin >> n;
double f[5] = { 0 };
for (size_t r = 0; r < 4; ++r)
    {
        f[r] = rand() % 150031;
    }
f[4] = n - (f[0] + f[1] + f[2] + f[3]);
    std::sort(f, f + 5);
for (size_t r = 0; r < 5; ++r) std::cout << "\nX(" << r << ") = " << f[r];
/*2) :*/
std::cout << "\n\n2: \n";
выдает огромные числа

Добавлено через 4 минуты
Цитата Сообщение от Folian Посмотреть сообщение
это пример приведения char в int. Я не особо понял чего ты хочешь, то ли это, то ли строку в число.
строку в число

Добавлено через 10 минут
извини, если чем то обидел, но где я соврал то?
0
1706 / 1106 / 337
Регистрация: 25.01.2019
Сообщений: 2,907
11.05.2020, 20:01 6
Цитата Сообщение от Acheron Посмотреть сообщение
выдает огромные числа
Цитата Сообщение от Acheron Посмотреть сообщение
C++
1
f[r] = rand() % 150031;
0 - 150030 для четырёх и одно корректирующее. 150031 - число от балды, по условию не важно какие.

Цитата Сообщение от Acheron Посмотреть сообщение
где я соврал то?
я загуглил
Цитата Сообщение от Acheron Посмотреть сообщение
из строкового типа в int
+ с++

первый результат про atoi

C++
1
2
3
4
5
    char t[] = "145";
    int x = atoi(t);
 
    std::cout << x;
//это не оттуда, это я написал, но там, в принципе, то же самое
Не поверю что прямо "искал-искал" и не нашел.
0
2 / 2 / 0
Регистрация: 11.05.2020
Сообщений: 82
11.05.2020, 20:03  [ТС] 7
Цитата Сообщение от Folian Посмотреть сообщение
Не поверю что прямо "искал-искал" и не нашел.
найти то нашел, но оно не работало. сейчас вот еще одно видео нашел. смотрю. буду пробовать
0
1706 / 1106 / 337
Регистрация: 25.01.2019
Сообщений: 2,907
11.05.2020, 20:07 8
Цитата Сообщение от Acheron Посмотреть сообщение
но оно не работало
#include <cstdlib>
0
2 / 2 / 0
Регистрация: 11.05.2020
Сообщений: 82
11.05.2020, 20:24  [ТС] 9
спасибо. сейчас буду пробовать

Добавлено через 8 минут
спасибо. сейчас буду пробовать
0
7430 / 5022 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
11.05.2020, 20:39 10
Цитата Сообщение от Acheron Посмотреть сообщение
сейчас буду пробовать
с таким условием и пробовать ничего не нужно
Цитата Сообщение от Acheron Посмотреть сообщение
дано n. найти 5 чисел, чтобы x1>=x2>=...>=x5 и x1+x2+x3+x4+x5=n
если n - положительное взяли и вывели любой подходящий ответ одной строкой, например:
C++
1
cout << n << " " << 0 << " " << 0 << " " << 0 << " " << 0 << "\n";
уточните условие задачи
0
2 / 2 / 0
Регистрация: 11.05.2020
Сообщений: 82
11.05.2020, 20:41  [ТС] 11
Цитата Сообщение от Yetty Посмотреть сообщение
уточните условие задачи
уже отправил преподавателю, спасибо. исправил свой код с подсказки, вроде работает. не идеальный код, конечно, но, надеюсь, пойдет. сейчас над символьной задачей думаю. получилось вот так, но ругается компилятор на lenght
#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
int main()
{
string s;
cin >> s;
int x;
for (int i = 0; i < s.lenght(); i++)
{
cout << (int)s[i];
}
}
0
Yetty
11.05.2020, 20:46
  #12

Не по теме:

Acheron, модератор зачеркнул условие, что Вы не нарушали Правила. одна задача - одна тема. на вторую задачу оформите новую тему.

0
1706 / 1106 / 337
Регистрация: 25.01.2019
Сообщений: 2,907
11.05.2020, 20:52 13
Цитата Сообщение от Acheron Посмотреть сообщение
ругается компилятор на lenght
length

Цитата Сообщение от Acheron Посмотреть сообщение
#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
int main()
{
string s;
cin >> s;
int x;
for (int i = 0; i < s.lenght(); i++)
{
cout << (int)s[i];
}
}
ты выводишь коды символов, а не число из строки. В/для string есть stoi, без cstdlib:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
 
int main()
{
    std::string str;
    std::cin >> str;
 
    int x = stoi(str);
    std::cout << x;
 
//  system("pause");
    return 0;
}
0
2 / 2 / 0
Регистрация: 11.05.2020
Сообщений: 82
11.05.2020, 21:14  [ТС] 14
Цитата Сообщение от Folian Посмотреть сообщение
length
cмешная ошибка. по поводу stoi - спасибо, посмотрю, что это. не видел ни разу. оказывается, все очень просто. сам нашел метод, где парень выводит код чисел и отнимает от каждого 48. но, очевидно, с stoi лучше и правильнее. спасибо!

Добавлено через 1 минуту
Цитата Сообщение от Yetty Посмотреть сообщение
Acheron, модератор зачеркнул условие, что Вы не нарушали Правила. одна задача - одна тема. на вторую задачу оформите новую тему.
понял. новенький на сайте, не знал. все решили, спасибо!
0
11.05.2020, 21:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.05.2020, 21:14
Помогаю со студенческими работами здесь

Вывестивсе пары натуральных чисел R и Z, удовлетворяющих данным условиям
Нужно создать приложение, которое при воде пользователем натурального числа S выдаёт все пары...

Найти П (произведение) множителей, удовлетворяющих условиям
Помогите, пожалуйста, дорешать задачу, условие прикреплено. У меня получилось лишь нехитрым...

Найти количество элементов массива А(5,5) удовлетворяющих условиям
задан числовой массив А(5,5). Определить количество элементов,удовлетворяющих следующим условиям:...

Написать программу перебора слов, функций или чисел, удовлетворяющих заданным условиям
Написать программу перебора слов, функций или чисел, удовлетворяющих заданным условиям. Каждое...

Найти геометрическое место точек на комплексной области, удовлетворяющих условиям
Помогите пожалуйста решить задачу, необходимо найти геометрическое место точек на комплексной...

Массив. Найти количество элементов массива, удовлетворяющих заданным условиям
кто поможет спс заранее)))) Задать одномерный массив из 10 элементов случайным образом. Найти...


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

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

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