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 i n.
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 |
---|