Lista de ordenação e matrizes com respostas
Transcrição
Lista de ordenação e matrizes com respostas
Exercícios de ordenação e matrizes 1. Faça um programa que leia 6 valores inteiros, armazeno-os em um vetor, organize o vetor de forma que os números sejam armazenados em ordem crescente e apresente o vetor na tela. Resposta: #include <stdio.h> int main() { int vetor[6]; int i, j, buffer; for(i=0; i<6; i++) { printf("Entre com o %do elemento\n", i+1); scanf("%d", &vetor[i]); } for(j=0; j<5; j++) for(i=5; i>j; i--) { if(vetor[i]<vetor[i-1]) { buffer= vetor [i]; vetor [i]= vetor [i-1]; vetor [i-1]=buffer; } } for(i=0; i<6; i++) printf("%d\n", vetor [i]); } getch(); 2. Altere o programa anterior para apresentar o vetor em ordem decrescente. Resposta: #include <stdio.h> int main() { int vetor[6]; int i, j, buffer; for(i=0; i<6; i++) { printf("Entre com o %do elemento\n", i+1); scanf("%d", &vetor[i]); } for(j=0; j<5; j++) for(i=5; i>j; i--) { if(vetor[i]>vetor[i-1]) { buffer= vetor [i]; } } vetor [i]= vetor [i-1]; vetor [i-1]=buffer; for(i=0; i<6; i++) printf("%d\n", vetor [i]); } getch(); 3. Faça um programa que armazene 10 números inteiros em um vetor, sendo 5 pares e 5 ímpares, organize de forma que os 5 números pares estejam em ordem crescente nas primeiras cinco posições do vetor e os 5 números ímpares estejam em ordem decrescente na próximas 5 posições do vetor. Apresente o vetor final na tela. Os números podem ser entrados em qualquer ordem. O programa deverá informar quantos números ímpares e pares faltam ser entrados e, caso um dos grupos já esteja completo, deverá solicitar que seja entrado um número do outro grupo. Resposta: #include <stdio.h> int main() { int vetor[10]; int i, j, buffer; int impar=0, par=0; i=0; for(i=0;i<10;i++) { if(impar<5 && par<5) { printf("Devem ser entrados 10 numeros inteiro, sendo\n"); printf("que faltam entrar %d pares e %d impares\n", 5-par, 5-impar); printf("Entre com um numero\n"); scanf("%d", &vetor[i]); if(vetor[i]%2==0) par++; else impar++; } else if(impar==5) { do { printf("Foram entrados %d pares e %d impares\n", par, impar); printf("Deve ser entrado necessariamente um numero par\n"); printf("Entre com um numero par\n"); scanf("%d", &vetor[i]); }while(vetor[i]%2!=0); par++; } else if(par==5) { } } do { printf("Foram entrados %d pares e %d impares\n", par, impar); printf("Deve ser entrado necessariamente um numero impar\n"); printf("Entre com um numero par\n"); scanf("%d", &vetor[i]); }while(vetor[i]%2==0); impar++; for(j=0; j<9; j++) for(i=9; i>j; i--) { if(vetor[i]%2==0) { buffer= vetor [i]; vetor [i]= vetor [i-1]; vetor [i-1]=buffer; } } for(j=0; j<4; j++) for(i=4; i>j; i--) { if(vetor[i]<vetor[i-1]) { buffer= vetor [i]; vetor [i]= vetor [i-1]; vetor [i-1]=buffer; } } for(j=5; j<9; j++) for(i=9; i>j; i--) { if(vetor[i]>vetor[i-1]) { buffer= vetor [i]; vetor [i]= vetor [i-1]; vetor [i-1]=buffer; } } printf("\n\nO vetor ordenado conforme solicitado e:\n%"); for(i=0; i<10; i++) printf("%d\n", vetor [i]); } getch(); 4. Faça um programa que solicite uma matriz 4 x 4 de números inteiros, leia e armazene os valores, calcule e mostre: (a) a soma dos elementos desta matriz; (b) o maior e o menor elemento da matriz; (c) a soma dos elementos de cada linha; (d) a soma dos elementos de cada matriz. Resposta: #include<stdio.h> int main() { int matriz[4][4]; int i,j; int SomaMatriz=0; int SomaLinha[4], SomaColuna[4]; int maior, menor; for(i=0; i<4; i++) { SomaLinha[i]=0; SomaColuna[i]=0; } for(i=0; i<4; i++) for (j=0; j<4; j++) { printf("\nEntre com o elemento [%d][%d] da matriz\n",i,j); scanf("%d", &matriz[i][j]); } maior=matriz[0][0]; menor=matriz[0][0]; for(i=0; i<4; i++) { for (j=0; j<4; j++) { SomaMatriz=SomaMatriz+matriz[i][j]; if(matriz[i][j]>maior) maior=matriz[i][j]; else if(matriz[i][j]<menor) menor=matriz[i][j]; } } for(i=0; i<4; i++) for (j=0; j<4; j++) SomaLinha[i]=SomaLinha[i]+matriz[i][j]; for(j=0; j<4; j++) for (i=0; i<4; i++) SomaColuna[j]=SomaColuna[j]+matriz[i][j]; for(i=0; i<4; i++) { for (j=0; j<4; j++) printf("%d ", matriz[i][j]); printf("\n"); } printf("\n\nA soma dos elementos matriz vale %d:\n", SomaMatriz); printf("\n\nO maior elemento da matriz vale %d:\n", maior); printf("\n\nO menor elemento da matriz vale %d:\n", menor); printf("\n\nAs somas das linhas valem\n"); for(i=0; i<4; i++) printf("linha %d: %d\n", i+1, SomaLinha[i]); printf("\n\nAs somas das colunas valem\n"); for(i=0; i<4; i++) printf("coluna %d: %d\n", i+1, SomaColuna[i]); getch(); } 5. Faça um programa que solicite 16 valores inteiros, armazene-os em uma matriz A de 4x4, apresente a matriz A e a sua transposta. Resposta: #include<stdio.h> int main() { int matriz[4][4]; int i,j, numero=1; for(i=0; i<4; i++) for(j=0; j<4; j++) { printf("Entre com o %d numero:", numero); scanf("%d", &matriz[i][j]); numero++; } printf("A matriz entrada foi:\n"); for(i=0; i<4; i++) { for(j=0; j<4; j++) printf("%d ", matriz[i][j]); printf("\n"); } printf("A transposta da matriz entrada e:\n"); for(i=0; i<4; i++) { for(j=0; j<4; j++) printf("%d ", matriz[j][i]); printf("\n"); } } getch(); 6. Uma matriz é chamada de triangular superior se todos os elementos abaixo da diagonal principal forem zero. Faça um programa que crie uma matriz triangular superior de 20 x 20, onde todos os elementos diferentes de zero são iguais a 1. Para criar a matriz use somente um par de for aninhados e um if-else. Quando for apresentar a matriz, para ficar visualmente melhor, coloque um espaço entre os elementos da mesma linha. Resposta: #include<stdio.h> int main() { int matriz[20][20], n=20; int i,j; for(i=0; i<n; i++) for (j=0; j<n; j++) if(i<=j) matriz[i][j]=1; else matriz[i][j]=0; for(i=0; i<n; i++) { for (j=0; j<n; j++) printf("%d ", matriz[i][j]); printf("\n"); } } getch(); 7. Repita o exercício anterior para uma matriz triangular inferior. Resposta: #include<stdio.h> int main() { int matriz[20][20], n=20; int i,j; for(i=0; i<n; i++) for (j=0; j<n; j++) if(i>=j) matriz[i][j]=1; else matriz[i][j]=0; for(i=0; i<n; i++) { for (j=0; j<n; j++) printf("%d ", matriz[i][j]); printf("\n"); } } getch(); 8. Faça um programa que leia e armazene os elementos de uma matriz 5x5 de números inteiros e: (a) apresente matriz entrada ; (b) apresente a matriz entrada trocando-se a primeira e segunda linhas; (c) multiplique a primeira linha por 3, some com a quarta linha, armazene o resultado na quarta linha e apresente a matriz final; (d) multiplique a segunda coluna por -1, some com a quinta coluna, armazene o resultado na quinta coluna e apresente a matriz final; Resposta: #include<stdio.h> int main() { int matriz[5][5], entrada[5][5], buffer; int i,j, numero=1; for(i=0; i<5; i++) for(j=0; j<5; j++) { printf("Entre com o elemento %d %d: ", i,j); scanf("%d", &entrada[i][j]); } printf("O resultado do item a e:\n"); for(i=0; i<5; i++) { for(j=0; j<5; j++) printf("%d ", entrada[i][j]); printf("\n"); } for(i=0; i<5; i++) for(j=0; j<5; j++) matriz[i][j]=entrada[i][j]; for(i=0; i<5; i++) { buffer=matriz[0][i]; matriz[0][i]=matriz[1][i]; matriz[1][i]=buffer; } printf("O resultado do item b e:\n"); for(i=0; i<5; i++) { for(j=0; j<5; j++) printf("%d ", matriz[i][j]); printf("\n"); } for(i=0; i<5; i++) for(j=0; j<5; j++) matriz[i][j]=entrada[i][j]; for(i=0; i<5; i++) { matriz[3][i]= 3*matriz[0][i]+matriz[3][i]; } printf("O resultado do item c e:\n"); for(i=0; i<5; i++) { for(j=0; j<5; j++) printf("%d ", matriz[i][j]); printf("\n"); } for(i=0; i<5; i++) for(j=0; j<5; j++) matriz[i][j]=entrada[i][j]; for(i=0; i<5; i++) { matriz[i][4]= -1*matriz[i][1]+matriz[i][4]; } printf("O resultado do item d e:\n"); for(i=0; i<5; i++) { for(j=0; j<5; j++) printf("%d ", matriz[i][j]); printf("\n"); } } getch();
Documentos relacionados
Exercícios de Linguagem C resolvidos EXERCÍCIOS DO CAPÍTULO
5. Faça um programa que lê um vetor de 3 elementos e uma matriz de 3 x 3 elementos. Em
seguida o programa deve fazer a multiplicação do vetor pelas colunas da matriz.
#include
Lista03 Extra
2. Escreva uma função chamada somavetor que possua dois parâmetros: um vetor de inteiros e o número de elementos do vetor. A função deve retornar a soma dos elementos do vetor. 3. Faça duas ...
Leia mais