Scrivere un programma che, richiesti i valori di due vettori (dimensione vettore decisa dall'utente), a scelta dell'utente decida se mostrare le matrici generate, il prodotto delle due matrici o uscire.
(il testo l'ho scritto io XD ma leggetevi il codice per capire di cosa parlo... (mi spiego un po male )
http://pczen.ath.cx/matrici-t143.html
è un pò un obrobrio secondo me consigli per migliorarlo?
e poi ovviamente XD postate anche le vostre solizioni!
(il testo l'ho scritto io XD ma leggetevi il codice per capire di cosa parlo... (mi spiego un po male )
Codice:
#include <stdio.h>
int main()
{
int i,u,rm1,rm2,cm1,cm2,col,rig,h,uno,due,k,righe,colonne;
int vet1[100][100];
int vet2[100][100];
int prod[100][100];
printf("Prova per registrazione di due matrici con n righe e n colonne\n\n");
printf("**********MATRICE 1**********\n\n");
printf("Numero righe (tra 1 e 100): ");
scanf("%d",&rm1);
printf("Numero colonne (tra 1 e 100): ");
scanf("%d",&cm1);
printf("\n\n");
printf("**********MATRICE 2**********\n\n");
printf("Numero righe (tra 1 e 100): ");
scanf("%d",&rm2);
printf("Numero colonne (tra 1 e 100): ");
scanf("%d",&cm2);
printf("\n**********MATRICE 1**********\n");
for (rig=0;rig<rm1;rig++) {
for (col=0;col<cm1;col++) {
printf("Inserisci linea %d colonna %d val: ",rig+1,col+1);
scanf("%d",&vet1[rig][col]);
}
}
printf("\n**********MATRICE 2**********\n");
for (rig=0;rig<rm2;rig++) {
for (col=0;col<cm2;col++) {
printf("Inserisci linea %d colonna %d val: ",rig+1,col+1);
scanf("%d",&vet2[rig][col]);
}
}
printf("Ora decidi cosa fare:\n1\tMostra le matrici ed esce\n2\tMoltiplica le matrici\n0\tEsci\n: ");
scanf("%d",&h);
while (h<0 || h>2 ) {
printf("Inserisci un numero valido!\nInserisci: ");
scanf("%d",&h);
}
if (rm1 > rm2) {
righe = rm1;
}
else {
righe = rm2;
}
if (cm1 > cm2) {
colonne = cm1;
}
else {
colonne = cm2;
}
for (i=0;i<righe;i++) {
for (u=0;u<colonne;u++) {
prod[i][u] = 0;
for (k=0;k<righe;k++) {
prod[i][u] = prod[i][u] + vet1[i][k] * vet2[k][u];
}
}
}
switch (h) {
case 1:
printf("**********MOSTRA MATRICI**********\n**********MATRICE 1**********\n\n");
for (i=0;i<rm1;i++) {
printf("\n");
for(u=0;u<cm1;u++) {
printf("%5d",vet1[i][u]);
}
}
printf("\n\n");
printf("**********MATRICE 2**********\n\n");
for (i=0;i<rm2;i++) {
printf("\n");
for(u=0;u<cm2;u++) {
printf("%5d",vet2[i][u]);
}
}
printf("\n\n");
break;
case 2:
printf("**********MOLTIPLICA MATRICI**********\nLa matrice prodotto e:\n");
for (i=0;i<righe;i++) {
printf("\n");
for (u=0;u<colonne;u++) {
printf("%5d",prod[i][u]);
}
}
printf("\n\n");
break;
case 0:
return 0;
}
}
è un pò un obrobrio secondo me consigli per migliorarlo?
e poi ovviamente XD postate anche le vostre solizioni!