Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Помогите найти ошибку в массиве (http://forum.oszone.net/showthread.php?t=63472)

bezumes 27-03-2006 19:54 422220

Помогите найти ошибку в массиве
 
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 422260

Массив нужен динамический:
Код:

double *a=(double *)malloc(sizeof(double)*raz);
функция malloc описана в <malloc.h>.

lehha 28-03-2006 08:05 422358

либо new, delete

bezumes 28-03-2006 14:59 422529

ну с помощью способа 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 422530

Просто:
double* a = new double[raz];
delete a;

ivank 28-03-2006 17:25 422577

delete[] a;


Время: 03:17.

Время: 03:17.
© OSzone.net 2001-2025