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

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

Войти
Регистрация
Восстановить пароль
 
v1le
 Аватар для v1le
15 / 12 / 1
Регистрация: 01.06.2011
Сообщений: 205
#1

Почему выводится разный результат? - C++

06.02.2012, 17:29. Просмотров 374. Ответов 3
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int main(){
    int mass[5]={3,5,3,5,3};
        int i=0,
        r=0;
    for(int i = 0; i < 5; i++)
                if(mass[i] % 3 == 0)
                {
                        r = i;
                        break;
                }
    printf("r=%d\n",r);
    r=0; i=0;
    while(i<5 && r==0){
         if(mass[i] % 3 == 0)
             r = i;
         i++;
    }
    printf("r=%d\n",r);
}
Задание: найти номер первого элемента кратного 3.

Реализовал в for и while, но почему-то выводится разный результат:
C++
1
2
r=0;
r=2;
В первом случае результат правильный, во втором почему то нет, в чём заключается моя ошибка?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2012, 17:29     Почему выводится разный результат?
Посмотрите здесь:

Не выводится результат C++
Не выводится результат рассчета по формуле C++
C++ Захват const переменной из лямбды: разный результат в g++ и clang
C++ Операции с длинными числами - неправильно выводится результат
C++ При создании таблицы результат выводится два раза
C++ Разный результат работы функции в release и debug
C++ Почему выводится ноль?
C++ Во время выполнения программы результат не выводится. Где ошибка?
C++ Одинаковые аргументы, разный результат
с хабра и мой код дают разный результат. why C++
C++ Игра в крестики нолики, задача почти решена но результат не выводится на экран
C++ Сборка и отладчик дают разный результат

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
retmas
Жарю без масла
842 / 724 / 158
Регистрация: 13.01.2012
Сообщений: 1,671
06.02.2012, 17:32     Почему выводится разный результат? #2
потому что для первого элемента массива r==0, а в while у вас условие while(i<5 && r==0)
v1le
 Аватар для v1le
15 / 12 / 1
Регистрация: 01.06.2011
Сообщений: 205
06.02.2012, 17:37  [ТС]     Почему выводится разный результат? #3
Цитата Сообщение от retmas Посмотреть сообщение
потому что для первого элемента массива r==0, а в while у вас условие while(i<5 && r==0)
Поменял на r==-1 и сразу заработало, поспешил написать на форум, но всё равно спасибо
Байт
Эксперт C
 Аватар для Байт
15073 / 9475 / 1389
Регистрация: 24.12.2010
Сообщений: 17,529
06.02.2012, 17:41     Почему выводится разный результат? #4
v1le, В for у тебя есть break, а в while нету
Yandex
Объявления
06.02.2012, 17:41     Почему выводится разный результат?
Ответ Создать тему
Опции темы

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