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 |
|---|