Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
jock
2 / 2 / 0
Регистрация: 29.10.2011
Сообщений: 38
#1

Циклы - C++

22.11.2011, 00:28. Просмотров 391. Ответов 3
Метки нет (Все метки)

Дано целое число а. Вывести все числа в диапазоне от 0 до а, которые делятся без остатка на 3, и сумму этих чисел. а вводит пользователь, и а меньше или равно 100.
Я так понял можно использовать любые циклы.
Вот мои попытки:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
int main()
{
    int a;
    cout<<"Vvedite chislo:\n";
    cin>>a;
    while (a%3==0)
    {
        if (a<=100)
        {
            a++;
            a+a;
        }
    cout<<a;
    }
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2011, 00:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Циклы (C++):

Заменить в коде циклы for на циклы while - C++
int i, j, n; bool a; cin &gt;&gt; i &gt;&gt; n; for (i; i&lt;n; i++) { a = true; for (j = 2; j &lt;= i / 2; j++) if ((i%j) == 0) a =...

циклы - C++

Циклы do… while - C++
Подскажите пожалуйста, что не так выводит в результате все время 1 Найти произведение p=(1-1/2)(1-1/4)...(1-2^n) Сомножители брать с...

с++ циклы - C++
Такая проблема есть два числа 100 и 1000. Из этих двух чисел, надо все четные числа запихнуть в две переменные и вывести их. Помогите...

i++ vs ++i (циклы) - C++
Собстно стало интересно почему все пишут for(ptrdiff i = 0; i &lt; 10; i++) { } постфиксный инкремент медленнее, а в данном...

Циклы do и while - C++
Приветсвую всех. Прошу помощи в решении двух задач: 1.Составить программу для определения, является ли натуральное число k степенью...

3
Сыроежка
Заблокирован
22.11.2011, 00:38 #2
Цитата Сообщение от jock Посмотреть сообщение
Дано целое число а. Вывести все числа в диапазоне от 0 до а, которые делятся без остатка на 3, и сумму этих чисел. а вводит пользователь, и а меньше или равно 100.
Я так понял можно использовать любые циклы.
Вот мои попытки:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
int main()
{
    int a;
    cout<<"Vvedite chislo:\n";
    cin>>a;
    while (a%3==0)
    {
        if (a<=100)
        {
            a++;
            a+a;
        }
    cout<<a;
    }
return 0;
}
У вас сразу же в коде встречается ошибка, так как само введенное число не обязано делиться на 3! И кроме того у вас непонятный код в теле цикла с увеличением значения переменной a и ее сложения самой с собой.

Должно быть

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
#include <iostream>
 
using namespace std;
 
int main()
{
   const int max_value = 100;
   int a;
 
   cout << "Vvedite chislo:\n";
   cin >> a;
 
   if ( max_value < a  ) a = max_value;
 
   int sum = 0;
 
   while ( a != 0)
   {
      if ( a % 3 == 0 )
      {
         cout << a << ' ';
         sum += a;
      }
      --a;
   }
 
   cout << "sum = " << sum << std::endl;
 
   return 0;
}
1
jock
2 / 2 / 0
Регистрация: 29.10.2011
Сообщений: 38
22.11.2011, 00:45  [ТС] #3
Спасибо за помощь
0
Сыроежка
Заблокирован
22.11.2011, 00:49 #4
Цитата Сообщение от jock Посмотреть сообщение
Спасибо за помощь
Только я не обратил сразу же внимание, но вам следует везде тип int в объявлениях переменных поменять на тип unsigned int. Иначе пользователь может ввести отрицательное число, и алгоритм будет работать не так, как ожидается.
1
22.11.2011, 00:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2011, 00:49
Привет! Вот еще темы с ответами:

Циклы (for, while, do while) - C++
Помогите пожалуйста, вообще ничего не получается...:( Через for: 1.Задано натуральное число, уничтожить с него цифры - &quot;5&quot; и &quot;2&quot;,...

Циклы в С++ - C++
Напишите программу, которая будет выводить на печать средний и максимальный результат из введенных.

Циклы - C++
1) Дано вещественное число А и целое число N(&gt;0). Используя один цикл, найти сумму 1+A+A^2+...+A^N. Пример входных данных: 1.00 2 ...

Циклы - C++
1)For. Дано целое число N(&gt;0). Найти сумму (1^N)+(2^N-1)+...N 2)While. Даны целые положительные числа A и В. Найти их наибольший...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru