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

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

Войти
Регистрация
Восстановить пароль
 
PinkPink
9 / 9 / 2
Регистрация: 10.05.2012
Сообщений: 279
#1

Циклы ведут себя как-то странно - C++

20.11.2012, 19:43. Просмотров 346. Ответов 8
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
using namespace std;
int main()
{
    float A[]={1,2,3,4,5,6,7,8,9,10};
    float MAX=0;
    int I;
    int sum=0;
    for(I=0;I<10;I++)
    if(I%2==0) sum+=A[I];
 
    system("pause");
    return 0;
}
Здесь например, значение sum в результате равно единице. Я не могу понять.. цикл вообще не крутится? за ним просто следует условие? но тогда, что здесь является телом цикла?? должна быть ошибка если тело цикла отсутствует.

а вот в другом примере
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>
#include <string>
#include <Windows.h>
 
using namespace std;
int main()
{
    int A[10]={3,4,5,1,3,5,1,3,4};
    float MAX=1;
    short I;
    int sum=0;
    for(I=0;I<10;I++)
        if (A[I]>MAX) MAX=A[I];
    for(I=0;I<5;I++)
    {
        switch (I)
        {
        case 1: MAX+=1;
        case 2: MAX-=1;
        case 3: MAX*=2;
        case 4: MAX/=2;
        case 5: MAX+=1+MAX/2;
        }
    }
    system("pause");
    return 0;
}
Аналогичным образом осуществляется поиск максимума, но почему-то этот цикл выполняется без проблем и не проскакивает. В чём дело?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2012, 19:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Циклы ведут себя как-то странно (C++):

cin странно себя ведет - C++
Здравствуйте! Если в самом начале в майне написать char tch; cin.getline(tch,32) То все Ок, работает как надо. Но в в мэйне...

Цикл While странно себя ведет - C++
Пишу программу которая считывает из каждой строки массив неизвестной длины.Цикл while(который помечен комментом) странно себя...

Странно видёт себя программа - C++
Написал программу конвертор валют но при выборе валюты программа сразу пишет ответ. #include &lt;iostream&gt; using namespace std; int...

Каретка странно себя ведёт - C++
С недавнего времени , каретка в Visual studio начала менятся , при нажатии стр. влево(выделяет символ) ... Как исправить? VS2015

Странно себя ведёт массив в классе. - C++
Доброго времени суток всем. Есть у меня некий класс class * { private int mas; int len; //фактическая длина массива public ...

Странно ведёт себя функция fgets - C++
(в файле лежит предложение на английском) int main() { FILE *f; char str; if ((f=fopen(&quot;Е:\\...имя файла&quot;,&quot;r&quot;))=NULL){printf...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
20.11.2012, 19:49 #2
Цитата Сообщение от PinkPink Посмотреть сообщение
Здесь например, значение sum в результате равно единице.
Только что проверил у себя, у меня результат 25.
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
20.11.2012, 19:49 #3
Цитата Сообщение от PinkPink Посмотреть сообщение
switch (I) { case 1: MAX+=1; case 2: MAX-=1; case 3: MAX*=2; case 4: MAX/=2; case 5: MAX+=1+MAX/2; }
C++
1
2
3
4
5
6
7
8
 switch (I)
        {
        case 1: MAX+=1; break;
        case 2: MAX-=1; break;
        case 3: MAX*=2; break;
        case 4: MAX/=2; break;
        case 5: MAX+=1+MAX/2; 
        }
0
PinkPink
9 / 9 / 2
Регистрация: 10.05.2012
Сообщений: 279
20.11.2012, 19:52  [ТС] #4
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
 switch (I)
        {
        case 1: MAX+=1; break;
        case 2: MAX-=1; break;
        case 3: MAX*=2; break;
        case 4: MAX/=2; break;
        case 5: MAX+=1+MAX/2; 
        }
здесь не нужно брейк, все кейсы нужно выполнить, начиная с I-го
тобишь, то что мы "проваливаемся" дальше - это так задумано

Добавлено через 54 секунды
а как у вас будет вести себя вот такой код?
float A[]={1,2,3,4,5};
float MAX;
int I;
for(I=0;I<5;I++)
if (I>2) A[I]=A[I-1]*2;

у меня массив остаётся без изменений т.к. опять таки цикл не крутится(
если убрать условие, то цикл крутится. с ним - нет
0
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
20.11.2012, 19:56 #5
PinkPink, попробуйте перестроить проэкт.

Добавлено через 25 секунд
в первом случае.
0
PinkPink
9 / 9 / 2
Регистрация: 10.05.2012
Сообщений: 279
20.11.2012, 19:58  [ТС] #6
Цитата Сообщение от SeregaC++ Посмотреть сообщение
PinkPink, попробуйте перестроить проэкт.

Добавлено через 25 секунд
в первом случае.
т.е. во всех этих ситуациях цикл всё-таки должен крутиться?
0
Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
20.11.2012, 20:02 #7
PinkPink, у меня всё крутится.

Добавлено через 46 секунд
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()
{
    float A[]={1,2,3,4,5,6,7,8,9,10};
    float MAX=0;
    int I;
    int sum=0;
    for(I=0;I<10;I++)
        if(I%2==0)
            sum+=A[I];
    cout << sum << endl;
 
    system("pause");
    return 0;
}
Добавлено через 21 секунду
вставьте код, и перестройте проэкт.
0
PinkPink
9 / 9 / 2
Регистрация: 10.05.2012
Сообщений: 279
20.11.2012, 20:20  [ТС] #8
по вашему совету перестроила проект, но ошибки всё равно были. потом, скопировала ваш текст, как вы сказали, вставила, ещё раз перестроила и стало работать. причём и мой код после этого тоже стал работать.
так и не поняла что за ерунда творилась)
0
Issues
20.11.2012, 20:25     Циклы ведут себя как-то странно
  #9

Не по теме:

PinkPink,

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2012, 20:25
Привет! Вот еще темы с ответами:

класс string. Программа странно себя ведет - C++
Программа странно себя ведет. После первого ввода имени и номера сотрудника, пропускает последующие вводы имен, переходя сразу к номеру. ...

Копирую строчки двумерного массива и программа начинает вести себя странно - C++
В общем, есть некоторый полузапиленный код. #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;stdlib.h&gt; #include &lt;conio.h&gt; ...

Почему программа себя странно ведет: зацикливается после ввода значений? - C++
Зацикливается после воода значений. Подскажите пожалуйста в чем может быть проблема. #include &lt;fstream&gt; #include &lt;iostream&gt; ...

Работаю с файлом *.txt. Прога ведет себя странно если последняя строка файла пуста. Почему так? - C++
Добрый день! Помогите пожалуйста с небольшой проблемой. Что хотел сделать: Есть текстовый файл, в нем содержатся любые...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
20.11.2012, 20:25
Ответ Создать тему
Опции темы

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