Войти

Показать полную графическую версию : Помогите найти ошибку в массиве


bezumes
27-03-2006, 19:54
C++.net 2005

Помогите пожалуйста, не могу понять почему здесь ошибка:( .Скорее всего что ошибка в массиве.

#include"stdafx.h"

#include<iostream>

#include<locale>

#include<conio.h>

using namespace std;

int main()

{

int raz=0;

wcout.imbue(locale(".866"));

wcout<<L"Введите размер матрицы ";

cin>>raz;

double a[raz];

for(int i=0;i<raz;i++)

{

wcout<<L"Введите элемент а["<<i<<"]=";

cin>>a[i];

}

getch();

return EXIT_SUCCESS;

}


Да и пожалуйста подскажите какие еще неточности алгоритма(если они есть)здесь присутсвуют

Arrest
27-03-2006, 21:55
Массив нужен динамический:

double *a=(double *)malloc(sizeof(double)*raz);

функция malloc описана в <malloc.h>.

lehha
28-03-2006, 08:05
либо new, delete

bezumes
28-03-2006, 14:59
ну с помощью способа Arrestу меня все получилось.А вот с помощью нев делете не очень.Объясните пожалуйста что я неправильно делаю
#include "stdafx.h"
#include <iostream>
#include <locale>
#include <conio.h>
using namespace std;
int main()
{
int raz=100;double max=0;
wcout.imbue(locale(".866"));
wcout<<L"Введите размер матрицы ";
cin>>raz;
new double a[raz];
for(int i=0;i<raz;i++)
{
wcout<<L"Введите элемент а["<<i<<"]=";
cin>>a[i];
if(a[i]>max)max=a[i];
}
cout<<max<<endl;
delete a[raz];
getch();
return EXIT_SUCCESS;
}

lehha
28-03-2006, 15:09
Просто:
double* a = new double[raz];
delete a;

ivank
28-03-2006, 17:25
delete[] a;




© OSzone.net 2001-2012