Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

for, while, if и массив

394
04 сентября 2006 года
MegaMozg
317 / / 18.03.2006
Приветствую!
Хотел сделать "поиск": программка просматривает массив, по пути выбирает элементы равные x, и выводит на экран их индексы:
Код:
#include<iostream.h>

void main(){

    int v[5] = {9, 1, 8, 7, 9};
    int i, x;
   
    cin >> x;

    i = 0;

    for(i; i < 5; i++){
        if(v = x){
            cout << i << "\n";
        };

    };

}


Прога игнорирует if... и выводит все индексы подряд, но если
 
Код:
if(v = x)

заменить на
 
Код:
if(v > x)

то выводятся "правильные" индексы, элементов, которые больше х...

Почему if(v = x) неправильно работает?
3
04 сентября 2006 года
Green
4.8K / / 20.01.2000
Буквально на днях обсуждали "твою проблему":
http://forum.codenet.ru/showthread.php?p=139487#post139487

А проблема в том, что ты вместо сравнения написал присвоение.
Должно быть:
if(v == x)

Кстати, и массив можно было бы сделать константным.
394
04 сентября 2006 года
MegaMozg
317 / / 18.03.2006
СПАСИБО!
мне очень стыдно...
3
04 сентября 2006 года
Green
4.8K / / 20.01.2000
Стыдиться тут нечего. Все ошибаются.
533
04 сентября 2006 года
Visualex
254 / / 07.01.2005
Кстати вместо cout << i << "\n"; можно писать cout << i << endl;
394
04 сентября 2006 года
MegaMozg
317 / / 18.03.2006
Visualex
Знаю, но мне "\n" больше нравится :)
1.8K
04 сентября 2006 года
_const_
229 / / 26.11.2003
[QUOTE=MegaMozg]Visualex
Знаю, но мне "\n" больше нравится :)[/QUOTE]

Напрасно. В зависимости от платформы endl может меняться, например на "\r\n". Так что для переносимости лучше все-таки использовать endl.
394
05 сентября 2006 года
MegaMozg
317 / / 18.03.2006
_const_
Учту на будущее
350
05 сентября 2006 года
cheburator
589 / / 01.06.2006
А мне ещё вот эта конструкция очень понравилась:
[QUOTE=MegaMozg]
 
Код:
i = 0;
    for(i; i < 5; i++)
...

[/QUOTE]
:) Обычно переменную цикла инициализируют внутри оператора for:
 
Код:
for (i=0; i<5; i++)

Или, если ей уже было присвоено нужное значение, первую секцию в операторе оставляют пустой:
 
Код:
i=0;
for (; i<5; i++)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог