Коллекции загружаются
#нужна_помощь #программерское #студенческое
Товарищи, кто шарит в VS С/С++? Есть прога (проще не бывает) на перемножение двух матриц в шести разных вариантах с перестановкой по циклам. Компилится успешно в VS2010, VS2012 и VS2015, но "break"ается :( Рассчёты проводит, результаты выводит, но в конце что-то лично мне не совсем ясное происходит и не завершается должным образом, хотя выход осуществляется без ошибки. У кого есть VS на С/С++ на компе, выручите, создайте консольку, загоните туда этот код: http://pastebin.com/uuk5MWEK #include <iostream> #include <clocale> #include <conio.h> #include <stdlib.h> #include <stdio.h> #include <ctime> using namespace std; double**create (int n) { double **matr; matr = new double *n; for (int i=0; i<n; i++) matr[i]=new double n; for (int i=0;i<n;i++) for (int j=0;j<n;j++) matr[i][j]=rand()%5; return matr; } int main() { setlocale(LC_CTYPE,"rus"); double **a; double **b; double **c; int n,i,j,k; double start_time, end_time, search_time; cout<<"Введите размерность матриц"<<endl; cin>>n; a=create(n); b=create(n); c=new double*n; for (i=0;i<n;i++) c[i]=new doublen; //i j k for (i=0;i<n;i++) for (j=0;j<n;j++) c[i][j]=0; printf("i j k "); start_time=clock(); for (i=0;i<n;i++) for (j=0;j<n;j++) for (k=0;k<n;k++) c[i][j]=+a[i][k]*b[k][j]; end_time=clock(); search_time=(end_time - start_time)/1000; printf("%8.3f",search_time); printf("n"); //i k j for (i=0;i<n;i++) for (j=0;j<n;j++) c[i][j]=0; printf("i k j "); start_time=clock(); for (i=0;i<n;i++) for (k=0;k<n;k++) for (j=0;j<n;j++) c[i][j]=+a[i][k]*b[k][j]; end_time=clock(); search_time=(end_time - start_time)/1000; printf("%8.3f",search_time); printf("n"); //j i k for (i=0;i<n;i++) for (j=0;j<n;j++) c[i][j]=0; printf("j i k "); start_time=clock(); for (j=0;j<n;j++) for (i=0;i<n;i++) for (k=0;k<n;k++) c[i][j]=+a[i][k]*b[k][j]; end_time=clock(); search_time=(end_time - start_time)/1000; printf("%8.3f",search_time); printf("n"); //j k i for (i=0;i<n;i++) for (j=0;j<n;j++) c[i][j]=0; printf("j k i "); start_time=clock(); for (j=0;j<n;j++) for (k=0;k<n;k++) for (i=0;i<n;i++) c[i][j]=+a[i][k]*b[k][j]; end_time=clock(); search_time=(end_time - start_time)/1000; printf("%8.3f",search_time); printf("n"); //k i j for (i=0;i<n;i++) for (j=0;j<n;j++) c[i][j]=0; printf("k i j "); start_time=clock(); for (k=0;k<n;k++) for (i=0;i<n;i++) for (j=0;j<n;j++) c[i][j]=+a[i][k]*b[k][j]; end_time=clock(); search_time=(end_time - start_time)/1000; printf("%8.3f",search_time); printf("n"); //k j i for (i=0;i<n;i++) for (j=0;j<n;j++) c[i][j]=0; printf("k j i "); start_time=clock(); for (k=0;k<n;k++) for (j=0;j<n;j++) for (i=0;i<n;i++) c[i][j]=+a[i][k]*b[k][j]; end_time=clock(); search_time=(end_time - start_time)/1000; printf("%8.3f",search_time); printf("n"); for (i=0;i<n;i++) {delete [] a[i]; delete[] b[i]; delete[] c[i];} delete [] a; delete[] b; delete[] c; system("pause"); return(0); } И скажите мне "break"ается или нет? В окне сообщений у меня выходит проблемы с *.dll файлами, что это и как это решить - я пока хз. 25 октября 2016
1 |
Ластро
|
|
Так это замеры скорости, естественно они отличаются :))
|
ДНИЩE--ЫЫЫЫ
|
|
Al Lastor
ну я вообще код не читал) |