#include "stdafx.h"
#include <iostream.h>
#include <stdio.h>
int main()
{
int a;
cout << "Vvedite vaw vozrast /n";
cin >> a;
do
{
if (a>=18)
{cout << "Vy soverwennoletnii /n";}
else {cout << "Vy ne soverwennoletnii /n";}
}
while (a>1000);
return 0;
}
Выходит ошибка при компиляции
Доброго времени суток! Я новичок в С++ и создал первую программу, можете помочь с ошибкой, вроде все нормально, но компиль ругается. Хотя это самая легкая прога, но я хотел бы знать в чем я ошибаюсь. Среда Висуал Студио 2008. Заранее благодарен.
Код:
#include <iostream>
и добавь после includ'ов:
Код:
using namespace std;
о спс большое, как я мог такое забыть =)) но при запуске в окне дос выходит надпись "введите ваш возраст /n" почему так? ведь /n это перевод каретки ...
Цитата: Morphling
о спс большое, как я мог такое забыть =)) но при запуске в окне дос выходит надпись "введите ваш возраст /n" почему так? ведь /n это перевод каретки ...
эскейп последовательности начинаются с \, а не с /
Norgat, спасибо, оч помогли ...
class Matrix
{ private: int N;
Vector<T>* str;
public:
Matrix(int _N=3);
~Matrix(void);
Matrix(const Matrix<T>&c);
Vector<T>& operator [] ( int num);
Matrix<T>& operator + (const Matrix<T> &a);
Matrix<T>& operator += (const Matrix<T>& a);
Matrix<T>& operator - (const Matrix<T>& a);
void resize( Matrix<T> &a ,int s_new );
void init( Matrix<T> &a ,Matrix<T> &b,int elem );
Matrix<T>& operator= (Matrix<T> &a);
Matrix<T>& operator * (T a);
friend ostream& operator << (ostream& os,const Matrix<T>& matrix)
{
os << " " <<endl;
for(int i=0;i<matrix.N;i++)
os<<matrix.str<<endl;
return os;
}
friend istream& operator >> (istream& is,Matrix<T>& matrix)
{
for(int i=0;i<matrix.N;i++)
is>>matrix.str;
return is;
}
};
template<class T>
Matrix<T>::Matrix(int _N)
{N=_N;
str=new Vector<T>[N];
for(int i=0;i<N;i++)
str=Vector<T>(i+1);
}
template<class T>
Matrix<T>::~Matrix(void)
{
delete[] str;}
template<class T>
Matrix<T>:: Matrix(const Matrix <T> &c )
{ N=c.N;
str=new Vector<T>[N];
for(int i=0;i<N;i++)
str=c.str;
}
template<class T>
Vector<T>& Matrix<T>:: operator[] (int num)
{return str[num];
}
template<class T>
Matrix<T>& Matrix<T>:: operator= (Matrix<T> &a)
{
if (N==a.N)
{
for(int i=0;i<N;i++)
str=a.str;
}
else
{N=a.N;
delete [] str;
str = new Vector<T>[N];
for(int i=0;i<N;i++)
str=a.str;
}
return *this;
}
template<class T>
void Matrix<T>:: resize( Matrix<T> &a ,int s_new )
{/*Matrix<T> *temp;
temp= new Matrix<T>(s_new);
a=&temp;*/
delete[] a.str;
a.N=s_new;
a.str=new Vector<T>[a.N];
for(int i=0;i<a.N;i++)
a.str=Vector<T>(i+1);
}
и вот такой главный файл:
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_CTYPE, "russian");
cout<<"Эта программа выполняет действия над матрицами особого вида.";
cout<<endl;
int n=3;
Matrix<double> matr_a(n), matr_b(n), matr_c(n),pro(n);
cout<<" Введи размерность матрицы а "<<" ";
cin >> n;
pro.resize(matr_a,n);
pro.resize(matr_b,n);
pro.resize(matr_c,n);
cout<<"Введи матрицу а"<<endl;
//cin>>matr_a;
{ cout<<"Введите максимально-возможный элемент в матрице "<<endl;
int el;
cin>>el;
srand((unsigned) clock());
for( int i=0; i<n; i++)
{
for(int k=0; k<n; k++)
{ matr_a[k]=(rand() % el) + 1;
matr_b[k]= (rand() % el) + 1;
}
}
}
return 0;
}
все нормально компилирует... но при работе выдает ошибку:
ОС Windows инициировала точку останова в matr.exe.
Это может быть вызвано повреждением кучи и указывает на ошибку в matr.exe или в одной из загруженных им DLL.
Возможной причиной так же может быть нажатие пользователем клавиши F12, когда фокус принадлежит matr.exe
Выведенное на экран окно содержит дополнительные данные для диагностики ошибки
HEAP[matr.exe]: Heap block at 00346E70 modified at 00346E88 past requested size of 10
в отладке:
"matr.exe": Загружено: "C:\Documents and Settings\Evo\Мои документы\Visual Studio 2010\Projects\matr\Release\matr.exe", Символы загружены.
"matr.exe": Загружено: "C:\WINDOWS\system32\ntdll.dll", Невозможно найти или открыть файл PDB
"matr.exe": Загружено: "C:\WINDOWS\system32\kernel32.dll", Невозможно найти или открыть файл PDB
"matr.exe": Загружено: "C:\WINDOWS\system32\msvcp100.dll", Символы загружены.
"matr.exe": Загружено: "C:\WINDOWS\system32\msvcr100.dll", Символы загружены.
HEAP[matr.exe]: Invalid Address specified to RtlFreeHeap( 00340000, 00346FB8 )
т.е. не грузит dll, почему может быть??и в чем проблема?? помогите, уже какой день сижу ночами, никак не пойму((( там есть еще один класс, если нужно могу все прислать..