Pessoal estou precisando de ajuda Meu professor passou um trabalho para completar o programa que ele deu, porque a turma é iniciante ainda, o trabalho é esse: Multiplicação de matrizes Escreva um programa que recebe como parâmetros um inteiro n, sendo n potência de 2, e possívelmente '-S' para utilizar o método de multiplicação de matrizes de Strassen. O seu programa deve gerar 2 matrizes aleatórias n x n e mutiplicá-las, e imprimir o tempo de execução gasto. O programa do professor é esse: ------------------------------------------------------------------------------------------------ #include <stdio.h> #include <stdlib.h> #include <time.h> #include <string.h> void metodostrassen (int *mat1, int *mat2, int b0, int c0, int tam){ int a; /*Partindo a matriz*/ if (tam>2){ a= tam>2; metodostrassen (mat1, mat2, b0, c0, a); metodostrassen (mat1, mat2, b0+a, c0, a); metodostrassen (mat1, mat2, b0, c0+a, a); metodostrassen (mat1, mat2, b0+a, c0+a, a); } else{ /*formulas*/ } } int testan (int n) { int x,y,c; c=n; do{ x=c%2; y=c/2; c=y; } while(x!=1 && y>1); if(x==0 && y==1) { return n; } else { n=0; puts("Digite novamente:"); scanf("%d", &n); testan (n); } } int main (int argc, char* argv[]) { int *mat1, *mat2, *mat3; int i, j, k, s, z, n ; time_t t1,t2; mat1=(int*)malloc(n*sizeof(int)); mat2=(int*)malloc(n*sizeof(int)); mat3=(int*)malloc(n*sizeof(int)); t1=time(NULL); s=0; if(argc<2 || argc>3){ printf("Est errado: primeiro digita a ordem da matriz e depois se quiser pelo metodo de strassen digita -s"); return(1);} else{ n=atoi(argv[1]); n=testan(n); /* printf("essa é a ordem da matriz:%d\n",n);*/ if(argc==3){ if(strcmp(argv[2], "-s")){ s=1;}}} srand(time(NULL)); for(i=0; i<n; i++){ for(j=0; j<n; j++){ mat1[i*n+j]= rand()%100; mat2[i*n+j]= rand()%100; /* printf("%d ", mat1[i*n+j]); printf("%d ", mat2[i*n+j]); */ } /* printf("\n");*/ } if(s==0){ for(i=0; i<n; i++){ for(j=0; j<n; j++){ z=0; for(k=0; k<n; k++){ z+=mat1[i*n+k]*mat2[k*n+j]; } mat3[i*n+j]=z; } } /* printf("\n\n"); printf("matriz1*matriz2=\n"); for(i=0; i<n; i++){ for(j=0; j<n; j++){ printf("%d ", mat3[i*n+j]); } printf("\n"); } printf("\n");*/ t2=time(NULL); printf("tempo de execucao=%lf",difftime(t2,t1)); return(0);} else{ metodostrassen (mat1, mat2, 0, 0, n); } } ------------------------------------------------------------------------------------------------ Agora só falta completar botando as formulas e oque mais faltar alguém pode me da um help porque não sei como fazer PS: Tenho que entregar o trabalho no sábado 25/06 Obrigado