Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.88/16: Рейтинг темы: голосов - 16, средняя оценка - 4.88
rypblcbka
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 11
1

Оператор for

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

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

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

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

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

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

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

29
ForEveR
В астрале
Эксперт С++
7997 / 4755 / 652
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
22.11.2010, 02:21 2
rypblcbka, та легко.
Не учитываю, что A, B могут быть отрицательными.
Интервал считаю [A, B).
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
int main()
{
    int A, B;
    std::cout<<"Enter ranges\n";
    std::cin>>A>>B;
    int sum=0;
    for(int i=A; i<B; ++i)
    {
        if(i%4==0)
           sum+=i;
    }
    std::cout<<sum<<'\n';
    return 0;
}
0
rypblcbka
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 11
22.11.2010, 02:27  [ТС] 3
std::cout<<"Enter ranges\n";
std::cin>>A>>B;
Что это? Можно ли проще записать программу? Просто я совсем недалеко ушел)
0
ForEveR
В астрале
Эксперт С++
7997 / 4755 / 652
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
22.11.2010, 02:28 4
rypblcbka, А что значит попроще? Да и какой язык вам нужен С или С++?
0
rypblcbka
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 11
22.11.2010, 02:31  [ТС] 5
С++, а компилятор BorlandC
Попроще - ну всмысле можно ли обойтись без этих строчек
std::cout<<"Enter ranges\n";
std::cin>>A>>B;
0
ForEveR
В астрале
Эксперт С++
7997 / 4755 / 652
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
22.11.2010, 02:35 6
Программа компилируется? Если нет просто напишите так.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream.h>
 
int main()
{
    int A, B;
    cout<<"Enter ranges\n";
    cin>>A>>B;
    int sum=0;
    for(int i=A; i<B; ++i)
    {
        if(i%4==0)
           sum+=i;
    }
    cout<<sum<<'\n';
    return 0;
}
cin>> - ввод с экрана
cout<< - вывод на экран
0
rypblcbka
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 11
22.11.2010, 02:41  [ТС] 7
Первая программа не компилится, что-то на #include <iostream> гонит.
А можно ли как-нибудь cin>> и cout<< заменить на printf и scanf? И если можно, то как?)
0
ForEveR
В астрале
Эксперт С++
7997 / 4755 / 652
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
22.11.2010, 07:42 8
rypblcbka, Я же спрашивал вам нужно Си или С++... printf/scanf это Си... В Си++ использовать не стоит.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
 
int main()
{
    int A, B;
    printf("Enter ranges\n");
    scanf("%d%d", &A, &B);
    int sum=0;
    for(int i=A; i<B; ++i)
    {
        if(i%4==0)
           sum+=i;
    }
    printf("Sum=%d\n", sum); 
    return 0;
}
1
rypblcbka
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 11
22.11.2010, 17:36  [ТС] 9
Не опознает i и sum, задал и тип int, подключил библиотеки conio.h и math.h, включается, но суммы не выводит, выводит лишь значение b в качестве суммы.

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

Добавлено через 2 минуты
и пишет, что я должен использовать C++, чтобы использовать данную библиотеку.
Можно ли у вас попросить код программы показать на Cи в таком случае?
0
Dream1
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 7
22.11.2010, 20:42 10
Спасибо большое)
Написал программу, все отлично работает, многое переделал.
0
rypblcbka
0 / 0 / 0
Регистрация: 22.11.2010
Сообщений: 11
22.11.2010, 20:45  [ТС] 11
Благодарю, переделал, написал, работает)
0
ForEveR
В астрале
Эксперт С++
7997 / 4755 / 652
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
22.11.2010, 20:47 12
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <conio.h> 
int main()
{
    int A, B;
    printf("Enter ranges\n");
    scanf("%d%d", &A, &B);
    int sum=0;
    int i=0;
    for(i=A; i<B; ++i)
    {
        if(i%4==0)
           sum+=i;
    }
    printf("Sum=%d\n", sum); 
    getch();
    return 0;
}
0
Mencey
151 / 98 / 12
Регистрация: 22.07.2010
Сообщений: 426
22.11.2010, 21:40 13
Цитата Сообщение от ForEveR Посмотреть сообщение
main()
Так лучше не писать т.к. это значит, что вы определяете main с неограниченным количеством аргументом.
т.е.
C
1
main()
Тоже самое что,
C++
1
main(...)
0
ForEveR
В астрале
Эксперт С++
7997 / 4755 / 652
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
22.11.2010, 21:43 14
Mencey, Ну если в Си то да. Но я в Си не пишу, поэтому не суть
0
slice
63 / 78 / 6
Регистрация: 04.11.2010
Сообщений: 249
22.11.2010, 21:43 15
Цитата Сообщение от Mencey Посмотреть сообщение
т.к. это значит, что вы определяете main с неограниченным количеством аргументом.
не <censored>
0
ForEveR
В астрале
Эксперт С++
7997 / 4755 / 652
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 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
В астрале
Эксперт С++
7997 / 4755 / 652
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 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
В астрале
Эксперт С++
7997 / 4755 / 652
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
23.11.2010, 01:05 20
rypblcbka, Это прекрасно. ПОжалуйста.
Но вы понимаете чему в этом случае будет равно i?
i=a>0;
0
23.11.2010, 01:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2010, 01:05

Почему обращение к методам осуществляется через оператор прямого доступа, а не через оператор указателей->?
#include &lt;iostream&gt; using namespace std; class random { public: void...

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

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


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

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

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