Nome:
Assinatura:
N
USP:
Turma:
Professor:
Instruções:
Questão | Valor | Nota |
1 | 3.5 | |
2 | 3.5 | |
3 | 3.0 | |
Total | 10.0 |
Faça um programa que leia um inteiro , matrizes quadradas
e
, de
dimensões
e verifica se
é a inversa de
. Suponha que
.
void empurra (int vet[MAX], int n, int i);que recebe um vetor vet com n elementos e desloca de uma posição para frente todos os elementos do vetor a partir da posição i. Considere
Exemplo: Considere o vetor abaixo com ,
12 | 3 | -4 | 7 | 1 | 13 | 0 | 8 | 19 | 11 | 17 |
Ao executar-se a função empurra com , teremos:
12 | 3 | -4 | 7 | 7 | 1 | 13 | 0 | 8 | 19 | 11 | 17 |
Note que o elemento na posição , após a execução da função aparece
duplicado no vetor.
Em cada iteração do método o vetor
estará ordenado nas posições
anteriores
a
(ou seja,
). A idéia é determinar em
que posição
o elemento
deverá ser inserido nesta parte ordenada,
empurrar os elementos
de uma posição usando a
função da questão anterior, abrindo espaço para o elemento que estava em
e finalmente colocá-lo na posição
do vetor.
Exemplo: Considere o vetor abaixo com ,
12 | 3 | -4 | 7 | 1 | 13 | 3 |
Na iteração o elemento 12 fica na posição
:
12 | 3 | -4 | 7 | 1 | 13 | 3 |
---|
Na iteração o
é empurrado e o
inserido na posição
:
3 | 12 | -4 | 7 | 1 | 13 | 3 |
---|
Para :
-4 | 3 | 12 | 7 | 1 | 13 | 3 |
---|
Para :
-4 | 3 | 7 | 12 | 1 | 13 | 3 |
---|
Para :
-4 | 1 | 3 | 7 | 12 | 13 | 3 |
---|
Para :
-4 | 1 | 3 | 7 | 12 | 13 | 3 |
---|
E, finalmente para :
-4 | 1 | 3 | 3 | 7 | 12 | 13 |
---|