We always learn something new

This commit is contained in:
Abreu 2021-08-19 13:07:12 -03:00
parent 2b7656a3da
commit a305e55071
No known key found for this signature in database
GPG Key ID: 64835466FF55F7E1
1 changed files with 12 additions and 10 deletions

View File

@ -9,14 +9,14 @@ int main () {
for (i = 0; i < 2; i++) {
printf("Digite, separadas por espaço, as dimenções em linhas e colunas da %dª matriz: ", i + 1);
if (!(scanf("%d %d", &lin[i], &col[i])) || lin[i] == 0 || col[i] == 0) {
if (!(scanf("%d %d", &lin[i], &col[i])) || lin[i] <= 0 || col[i] <= 0) {
printf("Valor inválido\n");
return 1;
}
}
if (col[0] != lin[1]) {
printf("Matrizes de tamanho incorreto: a largura da 1ª matriz (%d) é diferente da altura da segunda (%d). Estas matrizes não podem ser multiplicadas entre si.)\n", col[0], lin[1]);
printf("Matrizes de tamanho incorreto: a largura da 1ª matriz (%d) é diferente da altura da (%d). Estas matrizes não podem ser multiplicadas entre si.)\n", col[0], lin[1]);
return 1;
}
@ -26,10 +26,9 @@ int main () {
for (j = 0; j < lin[i]; j++)
matrices[i][j] = malloc (col[i] * sizeof(matrices[i][j]));
printf("Digite, separados por espaço ou quebra de linha, os %d valores a serem depositados na %d matriz:\n", lin[i] * col[i], i + 1);
for (j = 0; j < lin[i]; j++)
for (k = 0; k < col[i]; k++)
scanf(" %f", &matrices[i][j][k]);
printf("Digite, separados por espaço ou quebra de linha, os %d valores a serem depositados na %dª matriz:\n", lin[i] * col[i], i + 1);
for (j = 0; j < lin[i] * col[i]; j++)
scanf(" %f", &matrices[i][j / col[i]][j % col[i]]);
}
matrices[2] = malloc (lin[0] * sizeof(matrices[2]));
@ -37,9 +36,8 @@ int main () {
matrices[2][i] = malloc (col[1] * sizeof(matrices[2][i]));
for (j = 0; j < col[1]; j++) {
matrices[2][i][j] = 0;
for (k = 0; k < col[0]; k++) {
for (k = 0; k < col[0]; k++)
matrices[2][i][j] += matrices[0][i][k] * matrices[1][k][j];
}
number = matrices[2][i][j];
length = 0;
@ -54,8 +52,12 @@ int main () {
printf("Resultado:\n");
for (i = 0; i < lin[0]; i++) {
for (j = 0; j < col[1]; j++)
printf("%*.2f ", max_length, matrices[2][i][j]);
for (j = 0; j < col[1]; j++){
if (matrices[2][i][j] < 0)
printf("%*.2f ", max_length, matrices[2][i][j]);
else
printf(" %*.2f ", max_length, matrices[2][i][j]);
}
printf("\n");
}
return 0;