Форум программистов
 
О проблемах с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 01.05.2011, 17:30   #1
severest
Пользователь
 
Регистрация: 18.04.2011
Сообщений: 32
По умолчанию С++ найти количество элементов массива по условию

найти количество элементов массива (a1...an), удовлетворяющих условию
b<=ai<=c

Вроде работает нормально, но при выполнении вылезает ошибка:

Run-time check failure #2
stack around the variable 'a' was corruped

в visual studio 2008

Код:
#include <iostream>
using namespace std;
// найти кол-во эл-ов массива (a1...an) удовл-их условиям b<=ai<=c

int main (void)
{
const int n=5;
int i,kolvo,c,b, a[n];
for (i=0;i<=n;i++){
cout<<" vvedite element massiva "<<i<<"\n";
cin>>a[i];}
cout<<" dlia proverki yslovia b<=ai<=c vvedite c, b \n";
cin>>c>>b;
kolvo=0;
for (i=0;i<=n;i++) {
if ((a[i]<=c)&&(a[i]>=b)) kolvo=kolvo+1; 
}
cout<<" kolichestvo elementov udovletvorayshih usloviu b<=ai<=c ravno "<<kolvo;
return 0;
}
severest вне форума Ответить с цитированием
Старый 01.05.2011, 17:43   #2
zotox
Форумчанин
 
Регистрация: 09.09.2008
Сообщений: 395
По умолчанию

Опять 25.
Объясняю еще раз, массив нумеруется от нуля.
Пример:
for (i=0;i<=n;i++)
{
cout << i << "\n";
}

Тут выведется:
0
1
2
3
4
5

Т.е. всего шесть раз прошелся цикл (и 6 раз вывел в консоль инфу), когда наш массив состоит из 5 (!) элементов!
Когда мы объявляем массив:
int abc[5];

То к этому массиву можно только так обращаться:
abc[0] = 123;
abc[1] = 6431;
abc[2] = 6231;
abc[3] = 63412;
abc[4] = 6415;

Т.е. вместо for (i=0;i<=n;i++)
надо написать for (i=0;i<n;i++)
zotox вне форума Ответить с цитированием
Ответ
Купить рекламу на форуме 20000 рублей в месяц

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сумма и произведение элементов массива, удовлетворяющих условию (генерация float массива) felodese Помощь студентам 1 11.11.2010 20:52
В массиве из п элементов много совпадающих элементов. Найти количество различных элементов Strax Фриланс 11 12.06.2010 19:13
Найти количество положительных и нулевых элементов массива Rec0rd Помощь студентам 2 31.01.2010 20:24
найти среднее арифметическое элементов массива состоящее из 5 элементов viatlon Общие вопросы C/C++ 9 12.12.2009 00:45
вычислить количество элементов массива, лежащих в диапазоне от А до В Gigatrest Паскаль, Turbo Pascal, PascalABC.NET 16 26.01.2009 14:05


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS