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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.80
rypblcbka
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 11
#1

Оператор for - C++

22.11.2010, 01:57. Просмотров 2750. Ответов 29
Метки нет (Все метки)

Всем здравствуйте. Изучаю оператор for, и совершенно не могу понять, как он будет работать в этой программе:
Найти сумму целых положительных чисел из промежутка от А до В, кратных 4. Значения А и В вводятся с клавиатуры.
Может ли кто-нибудь предоставить код похожей программы. Заранее благодарствую.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2010, 01:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Оператор for (C++):

Условный оператор, оператор ввода/вывода; плоскость и принадлежность точки - C++
Здравствуйте. В С++ я абсолютный новичок, поэтому с первым же заданием возникли определённые трудности. Будьте добры, помогите решить. Буду...

Написать программу, содержащую оператор оператор for для счета от 2 до 5 через 1 - C++
В С++ я ноль, помогите пожалуйста написать прогу Написать программу, содержащую оператор оператор for для счета от 2 до 5 через 1 ...

Для шаблонного класса перегрузить оператор присваивания, copy-конструктор, объекты cin и cout, оператор * - C++
Помогите в следующем: Для класса шаблона следует перегрузить оператор присваивания, конструктор копирования, бинарный оператор суммы «*»,...

Для чего нужен оператор двоеточие, если два двоеточия - это оператор расширения области видимости - C++
для чего нужен оператор двоеточие ( : ), если два двоеточия( :: ) - это оператор расширения области видимости.

Почему обращение к методам осуществляется через оператор прямого доступа, а не через оператор указателей->? - C++
#include <iostream> using namespace std; class random { public: void Set(int b){a=b;} int Get(){return a;} private: ...

Применяя оператор цикла FOR вычислить y. Оператор if в теле цикла не использовать. Значение m и n вводить с клавиатуры. - C++
Применяя оператор цикла FOR вычислить y. Оператор if в теле цикла не использовать. Значение m и n вводить с клавиатуры. Шаг изменения...

29
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
22.11.2010, 21:48 #16
slice, В Си это действительно так. И прекрати уже так себя вести.
0
rypblcbka
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 11
23.11.2010, 00:53  [ТС] #17
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
main()
{
float a,b;
int i;
printf("a=");
scanf("%f", &a);
printf("b=");
scanf("%f", &b);
if(a<=b)
{
int sum=0;
for(i=a>0; i<=b; ++i)
{
if(i%4==0)
sum+=i;
}
printf("sum=%d\n", sum);
}
else printf("Proverte uslovie a<=b\n");
return 0;
}
Вот код получившейся программы, все работает, но есть существенный минус: когда задаю промежуток, состоящий из двух одинаковых чисел, например [10;10], то выдает сумму 12, то есть он начинает отсчитывать от 0. Поидее в данном случае сумма должна быть равна 0.
Где ошибка и как её исправить?
0
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
23.11.2010, 00:56 #18
rypblcbka, for(i=a>0; i<=b; ++i)
ЭТО ЧТО ЕЩЕ?

C++
1
2
3
4
for(i=a; i<=b; ++i)
{
//Ваш код
}
0
rypblcbka
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 11
23.11.2010, 01:01  [ТС] #19
В условии сказано, что нужно найти сумму целых положительных чисел, притом "а" может быть равным "b"
0
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
23.11.2010, 01:05 #20
rypblcbka, Это прекрасно. ПОжалуйста.
Но вы понимаете чему в этом случае будет равно i?
i=a>0;
0
rypblcbka
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 11
23.11.2010, 01:06  [ТС] #21
Если заменяю i=a>0 на i=a то начинает работать, если ввести два одинаковых, но если ввожу промежуток с отрицательным числом, например [-5;10], то он считает сумму вместе с отрицательными
0
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
23.11.2010, 01:09 #22
rypblcbka, Я же говорил что отрицательные не в счет. Добавьте условие.
Использовать лучше все таки int нежели float

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
main(void)
{
int a,b;
int i;
int sum=0;
printf("a=");
scanf("%d", &a);
printf("b=");
scanf("%d", &b);
if(a<=b)
{
for(i=a; i<=b; ++i)
{
if(i%4==0 && i>0)
sum+=i;
}
printf("sum=%d\n", sum);
}
else printf("Proverte uslovie a<=b\n");
return 0;
}
1
rypblcbka
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 11
23.11.2010, 01:16  [ТС] #23
Вот теперь программа работает на ура) Всё-таки использую float, чтобы промежуток можно было задавать любым числом. Спасибо огромное за помощь!)
0
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
23.11.2010, 01:19 #24
rypblcbka, Резон? Все равно float округлится до int в цикле. Если сделать i тоже float - нельзя будет использовать оператор %
0
fasked
Эксперт С++
4945 / 2525 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
23.11.2010, 01:27 #25
Цитата Сообщение от ForEveR Посмотреть сообщение
Но вы понимаете чему в этом случае будет равно i?
Это же очевидно - либо 0, либо 1
0
silent_1991
Эксперт С++
4985 / 3042 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
23.11.2010, 15:14 #26
Цитата Сообщение от fasked Посмотреть сообщение
Это же очевидно - либо 0, либо 1
А смысл?
0
fasked
Эксперт С++
4945 / 2525 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
23.11.2010, 17:16 #27
Цитата Сообщение от silent_1991 Посмотреть сообщение
А смысл?
Это я в капитана играю
А вообще довольный интересный способ инициализации счетчика.
1
silent_1991
23.11.2010, 17:41
  #28

Не по теме:

Цитата Сообщение от fasked Посмотреть сообщение
Это я в капитана играю
Да, игра захватывающая, развивающая

0
rypblcbka
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 11
25.11.2010, 02:14  [ТС] #29
Цитата Сообщение от ForEveR Посмотреть сообщение
rypblcbka, Резон? Все равно float округлится до int в цикле. Если сделать i тоже float - нельзя будет использовать оператор %
i я задал int, все нормально работает
0
DurkAngel
0 / 0 / 0
Регистрация: 10.11.2010
Сообщений: 21
25.11.2010, 02:26 #30
Цитата Сообщение от rypblcbka Посмотреть сообщение
Не опознает i и sum, задал и тип int, подключил библиотеки conio.h и math.h, включается, но суммы не выводит, выводит лишь значение b в качестве суммы.

Добавлено через 29 минут
Во второй программе выводит лишь 1 фатальную ошибку, которая кроется в библиотеке <iostream.h>

Добавлено через 2 минуты
и пишет, что я должен использовать C++, чтобы использовать данную библиотеку.
Можно ли у вас попросить код программы показать на Cи в таком случае?
ты разберись в какой среде работаешь... а потом уже пиши программу
0
25.11.2010, 02:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.11.2010, 02:26
Привет! Вот еще темы с ответами:

Оператор break как оператор go to next - C++
Подскажите, в этом примере break эквивалентна действию оператора go to next?

Как перегрузить оператор<< и оператор>> ? - C++
Доброго времени суток. Застрял на двух вопросах и не как не могу найти инфу которвя мне помогла бы их решить. вопрос первый. В общем...

В Delphi есть оператор cost i of. и т.д. Есть ли в C++ такой же оператор? - C++
(C++ Builder XE5)

Оператор if - C++
Почему у меня оператор Else выдает как ошибку(Е2054 Misplaced else)? и в операторе if не нравится как я записал if((s==a)&amp;&amp;(f==p)); ? ...


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

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

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