Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2010, 21:39   #1
logok
 
Регистрация: 25.02.2010
Сообщений: 7
По умолчанию Почему?

Здравствуйте.
При вводе в массив более 10-и элементов вылетает ошибка:Необработанное исключение в "0x7848ed1f" в "tyui.exe": 0xC0000005: Нарушение прав доступа при чтении "0x40000010".

Помогите пожалуйта найти ошибку:

Код:
#include <conio.h>
#include <iostream>
#include<math.h>
using namespace std;
//----------------------------------(Vvod massiva)
float Vvod(float*arr,int m)
{
	int i;
	for(i=0;i<m;i++)
{cout<<"massiv["<<i+1<<"]=";
cin>>arr[i];
}
cout<<"\nMassiv:";
for(i=0;i<m;i++)
cout<<arr[i]<<" ";
return *arr;
}

//----------------------------------(Proizvedenie el-ov posle max.po mod. elementa)
int index(float*arr,int m)
{int in;
	float max;
int i;
max=fabs(arr[0]);
for( i=0,in=0;i<m;i++)
{if (max<fabs(arr[i]))
in=i;
}
return in;
}

float proizvmax(float*arr,int m,int nn){
float proizv;
int i;
if ((nn+1)!=m)
{for(i=nn+1,proizv=1;i<=(m-1);i++)
proizv=arr[i]*proizv;
}
return proizv;}

//-----------------------------------(kol-vo elementov >c)
int kolvo(float* arr, int m,int c)
 {
 int kol = 0;

 for (int i = 0; i < m; i++)
  if (arr[i] > c)
   kol++;

return kol; 
}

//----------------------------------(formirovanie massiva)
void form(float*arr,int m){
int i,j;
 j=1;
while(j==1)
{j=0;
for( i=0;i<m-1;i++)
{if((arr[i]>=0)&&(arr[i+1]<0))
{j=1;
float temp=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp;
}
}
}cout<<"\n\nSform. massiv:";
for(i=0;i<m;i++)
{cout<<arr[i]<<" ";
}
}
//----------------
int main()
{
	int kol,m,i,j,nn;
float *arr=new float[m];float c;
cout<<"c=";
cin>>c;
cout<<"Razmer massiva=";
cin>>m;
//----------------------Vvod;
Vvod(arr,m);
//-----------------------------------(kol-vo elementov >c)
 cout<<"\n\nkolichestvo elementov > c = "<<kolvo(arr,m,c);
//---------------------------------(Proizvedenie el-ov posle max.po mod. elementa)
nn=index(arr,m);
 if ((nn+1)!=m)
cout<<"\n\nProizvedenie el-ov posle max. elementa="<<proizvmax(arr,m,nn);
else
cout<<"\n\nmax element poslednii";
//----------------------------------(formirovanie massiva)
form(arr,m);
//----------------------------

	
  getch();	
return 0;
}
logok вне форума Ответить с цитированием
Старый 12.04.2010, 21:54   #2
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

а вы не пробовали выделить память после ввода размерности массива?
counter вне форума Ответить с цитированием
Старый 12.04.2010, 21:59   #3
logok
 
Регистрация: 25.02.2010
Сообщений: 7
По умолчанию

Спасибо,помогло.
logok вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
интересно почему lennon Свободное общение 22 11.11.2009 06:56
почему не находит??? vipER Общие вопросы C/C++ 1 26.09.2007 14:26
Почему? Sota О форуме и сайтах клуба 4 26.07.2007 16:26