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

Решение проблемы с выводом ответа

01.03.2021, 13:22. Показов 994. Ответов 2
Метки с++ (Все метки)

Author24 — интернет-сервис помощи студентам
Друзья, добрый день! Есть трудность с выводом правильного ответа.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 #include <iostream>
using namespace std;
int
main()
{
unsigned short count1 = 0;
std::cout <<"Numbers with sum of digits = " << endl;    for (unsigned int N = 1; N <= 10000; N++) { // int?
    unsigned int Tmp = N;
    unsigned char Sum = 0;
    while (Tmp != 0) {
        Sum += Tmp % 10;
        Tmp /= 10;
            }
    if (Sum == 1) { std::cout << N << " "; count1++;}
}
std::cout << count1 << endl;
}
В результате получаю следующее:

Numbers of Sum of Digits = 1 10 100 1000 10000 5

Я бы очень хотел поменять местами вывод ответа, чтобы сначала было написано: Numbers of Sum of Digits = 5 1 10 100 1000 10000

Насколько я сам понимаю, 5 выводится из последнего «std::cout << count1 << endl;», а числа 1 10 100 1000 10000 из записи «if (Sum == 1) { std::cout << N << " "; count1++;}».

Заранее большое спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.03.2021, 13:22
Ответы с готовыми решениями:

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

Проблема с выводом ответа
На первый и на второй день рождения Винни Пух съел по 100 грамм еды. На каждый следующий день...

Уравнение с выводом ответа в консоль
Есть уравнение из двух систем первая y1= x-2, если x&gt;=2; 8 если x&lt;2; вторая 4 если x=0, a-x если...

Тест с выводом результата сразу после ответа на вопрос
Здравствуйте. Пытаюсь сделать тест в котором бы после того как пользователь нажимает на кнопку...

2
2105 / 1192 / 496
Регистрация: 11.10.2018
Сообщений: 6,000
01.03.2021, 13:38 2
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 <iostream>
using namespace std;
 
int main()
{
unsigned short count1 = 0;
cout <<"Numbers with sum of digits = " << endl;
 
for(unsigned int N = 1; N <= 10000; N++)                //int?
{
    unsigned int Tmp = N;
    unsigned char Sum = 0;
    while(Tmp)
    {
        Sum += Tmp%10;
        Tmp /= 10;
    }
    if(Sum == 1)
    {
        cout << N << " ";
        count1++;
    }
}
cout << count1 << endl;
}
Добавлено через 6 минут
Первый это был просто твой код без косяков.
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>
using namespace std;
 
int main()
{
int M[5];
unsigned short count1 = 0;
cout <<"Numbers with sum of digits = ";
 
for(unsigned int N = 1; N <= 10000; N++)
{
    unsigned int Tmp = N;
    unsigned char Sum = 0;
    while(Tmp)
    {
        Sum += Tmp%10;
        Tmp /= 10;
    }
    if(Sum == 1)
        M[count1++] = N;
}
cout << count1 << endl;
 
for(int i = 0; i < 5; i++)
    cout << M[i] << ' ';
}
0
Модератор
Эксперт С++
13496 / 10751 / 6406
Регистрация: 18.12.2011
Сообщений: 28,687
01.03.2021, 13:47 3
Лучший ответ Сообщение было отмечено sozbilizs как решение

Решение

Тогда придется либо повторить цикл:
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
#include <iostream>
using namespace std;
int main()
{
    int count1 = 0;
    for (int N = 1; N <= 10000; N++) 
    {
        int Tmp = N,Sum=0;  
        while (Tmp != 0) 
        {
            Sum += Tmp % 10;
            Tmp /= 10;
        }
        if (Sum == 1) 
            count1++;
    }
    std::cout<<"Numbers with sum of digits = " << count1 <<" ";
    for (int N = 1; N <= 10000; N++) 
    {
        int Tmp = N,Sum=0;  
        while (Tmp != 0) 
        {
            Sum += Tmp % 10;
            Tmp /= 10;
        }
        if (Sum == 1) 
        {
             std::cout<< N << " "; 
        }
    }
    std::cin.get();
    return 0;
}
Либо в 1 цикле копировать найденные числа в массив.
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
#include <iostream>
using namespace std;
int main()
{
    int numbers[1000];
    int count1 = 0;
    for (int N = 1; N <= 10000; N++) 
    {
        int Tmp = N,Sum=0;  
        while (Tmp != 0) 
        {
            Sum += Tmp % 10;
            Tmp /= 10;
        }
        if (Sum == 1) 
        {
            numbers[count1++]=N;
        }
    }
    std::cout<<"Numbers with sum of digits = " << count1 <<" ";
    for (int N = 1; N < count1; N++) 
    {
        std::cout<< numbers[N] << " "; 
    }
    std::cin.get();
    return 0;
}
Добавлено через 5 минут
FFPowerMan, Я думаю, заранее нельзя сказать, что чисел будет не более пяти.....
Я предположил, что каждое десятое число может подойти.
0
01.03.2021, 13:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.03.2021, 13:47
Помогаю со студенческими работами здесь

[PHP + cURL] - Запрос с выводом результата ответа сервера
Здравствуйте. Написал вот такой запрос: &lt;?php $curl = curl_init(); curl_setopt($curl,...

Ошибка с выводом ответа в listbox. Задача на одномерный массив
Дан массив, содержащий 14 элементов. Вычислить сумму элементов, стоящих до первого отрицательного...

Проблемы с выводом
Подскжите пожалуйста почему не работает эта программа ? Почему точнее не работает вывод ?...

Проблемы с выводом 0
Привет ребята! Прошу у вас вас помощи.Задача такова: на ввод даются числа из различного количества...

Проблемы с выводом
У меня расхождение с учебником, а в чем проблема не как не могу догадаться, подскажите пожалуйста,...

Проблемы с выводом из БД
Здравствуйте! У меня есть некая база данных, в которой лежат картинки. Отправляется запрос с...


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

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

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