Есть код программы, мне нужно чтобы матрица создавалась генератором случайных чисел random(). В программе он есть, но не работает. И я не знаю где ошибка.
Код: Выделить всё
#include <math.h>
#include <time.h>
#include "stdafx.h"
#include <iostream>
#include <vector>
#include <algorithm>
int _tmain(int argc, TCHAR** argv)
{
srand(time(0));
setlocale(LC_ALL,"");
size_t uRows=0, uCols=0;
std::vector<std::vector<type> > vMas;
std::wcout << L"Введите количество строк: ";
ReadControl(std::wcin,uRows);
std::wcout << L"Введите количество столбцов: ";
ReadControl(std::wcin,uCols);
if (uRows > 9) uRows = 9;
if (uCols > 19) uCols = 19;
std::wcout <<L"Будет создана матрица " <<uRows <<L"x" <<uCols <<std::endl;
vMas.resize(uCols); //Assume that the first dimension is number of cols
for (size_t col=0 ; col!=uCols ; col++) //correspodingly assume that the second dimension is the rows number
{
vMas[col].resize(uRows);
}
//Matrix input
for (size_t row = 0 ; row!=uRows ; row++)
{
for (size_t col =0 ; col!=uCols ; col++)
{
massive[i][j] = rand()%10+1; //рандомное число от 1 до 10
}
}
//Initial matrix
std::wcout <<L"\nИсходная матрица: "<<std::endl;
for (size_t row = 0 ; row!=uRows ; row++)
{
for (size_t col =0 ; col!=uCols ; col++)
{
std::wcout <<vMas[col][row] << L" ";
}
std::wcout <<std::endl;
} std::wcout <<std::endl;
//Exchange position for Min and Max elements;
for (size_t col = 0 ; col!=uCols ; col++)
{
std::swap(*(std::max_element(vMas[col].begin(),vMas[col].end())),*(std::min_element(vMas[col].begin(),vMas[col].end())));
}
//Print final massive
std::wcout <<L"Преобразованная матрица: "<<std::endl;
for (size_t row = 0 ; row!=uRows ; row++)
{
for (size_t col =0 ; col!=uCols ; col++)
{
std::wcout <<vMas[col][row] << L" ";
}
std::wcout <<std::endl;
}
fnIstreamClear(std::wcin);
getchar();
return 0;
}
std::wistream & fnIstreamClear(std::wistream & wcin)
{
wcin.clear();
do
{
wcin.ignore(INT_MAX,'\n');
wcin.putback('\n');
}
while(wcin.peek()!='\n');
wcin.get(); return wcin;
}
template <typename T>
std::wistream & ReadControl(std::wistream & wcin, T & var)
{
T temp=T();
wcin >> temp;
while(!wcin)
{
temp=T();
std::wcerr <<L"\nНе допустимое значение, повторите ввод: \n";
fnIstreamClear(wcin);
wcin >> temp;
};
var=temp;
return wcin;
while (true);
}