0% acharam este documento útil (0 voto)
37 visualizações16 páginas

Programas em C: Vetores e Matrizes

O documento contém uma série de exercícios de programação em C focados em vetores e matrizes. Cada exercício apresenta um problema específico, como leitura de números, cálculos de soma, identificação de maiores e menores valores, e manipulação de matrizes. Os códigos fornecidos demonstram a implementação das soluções propostas para cada questão.

Enviado por

silvaesther808
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
37 visualizações16 páginas

Programas em C: Vetores e Matrizes

O documento contém uma série de exercícios de programação em C focados em vetores e matrizes. Cada exercício apresenta um problema específico, como leitura de números, cálculos de soma, identificação de maiores e menores valores, e manipulação de matrizes. Os códigos fornecidos demonstram a implementação das soluções propostas para cada questão.

Enviado por

silvaesther808
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

FACULDADE ESTACIO BELÉM

MATÉRIA: Estrutura de Dados


ALUNA: Esther Ferreira Pantoja Matricula: 201803329076

VETORES
Questão 1: Crie um programa em C que leia 10 números inteiros e armazene-os em um
vetor. Em seguida, imprima todos os números que estão armazenados no vetor.
#include <stdio.h>
int main() {
int i;
int num[10];
printf("Digite 10 números inteiros:\n");
for (i = 0; i < 10; i++) {
printf("Número %d: ", i + 1);
scanf("%d", &num[i]);
}
printf("Números armazenados:");
for (i = 0; i < 10; i++) {
printf("%d", num[i]);
}
return 0;
}
Questão 2: Desenvolva um programa que leia um vetor de 5 elementos inteiros.
Depois, o programa deve calcular e mostrar a soma de todos os elementos do vetor.

#include <stdio.h>
int main() {
int j;
int vetor[5];
printf("Digite 5 elementos inteiros:\n");
for (int i = 0; i < 5; i++) {
printf("Elemento %d: ", i + 1);
scanf("%d", &vetor[i]);
}
for (int i = 0; i < 5; i++) {
j = j + vetor[i];
}
printf("A soma dos elementos do vetor é: %d",
j);
return 0; }
Questão 3: Escreva um programa que leia 8 números inteiros e armazene-os em um
vetor. O programa deve então encontrar e imprimir o maior e o menor número contido
no vetor.

#include <stdio.h>
int main() {
int i;
int vetor[8];
int maior, menor;
printf("Digite 8 números inteiros:\n");
for (i = 0; i < 8; i++) {
printf("Número %d: ", i + 1);
scanf("%d", &vetor[i]);
}
maior = vetor[0];
menor = vetor[0];
for (i = 1; i < 8; i++) {
if (vetor[i] > maior) {
maior = vetor[i];
}
else if (vetor[i] < menor) {
menor = vetor[i];
}
}
printf("O maior número é: %d\n", maior);
printf("O menor número é: %d\n", menor);
return 0; }
Questão 4: Faça um programa que leia um vetor de 6 elementos inteiros. Após ler o
vetor, o programa deve mostrar apenas os elementos que estão em posições pares do
vetor.
#include <stdio.h>
int main() {
int i;
int vetor[6];
printf("Digite 6 números inteiros:\n");
for (int i = 0; i < 6; i++) {
printf("Elemento %d:", i + 1);
scanf("%d", &vetor[i]); }
printf("Elementos nas posições pares:\n");
for (int i = 2; i < 6; i += 2) {
printf("Posição %d: %d\n", i, vetor[i]); }
return 0; }
Questão 5: Crie um programa que leia dois vetores de 5 elementos cada, e então crie um terceiro
vetor que seja a soma dos dois vetores lidos. Imprima o terceiro vetor ao final.

#include <stdio.h>
int main() {
int i;
int vetor1[5], vetor2[5], vetorSoma[5];
printf("Digite 5 números inteiros para o 1º
vetor:\n");
for (int i = 0; i < 5; i++) {
printf("Numero %d:", i + 1);
scanf("%d", &vetor1[i]); }
printf("Digite 5 números inteiros para o 2º
vetor:\n");
for (int i = 0; i < 5; i++) {
printf("Numero %d:", i + 1);
scanf("%d", &vetor2[i]); }
for (int i = 0; i < 5; i++) {
vetorSoma[i] = vetor1[i] + vetor2[i];}
printf("O vetor resultado da soma é:\n");
for (int i = 0; i < 5; i++) {
printf("Elemento %d: %d\n", i + 1,
vetorSoma[i]); }
return 0;}
MATRIZ
1. Faça um programa que preencha um vetor de inteiros de tamanho 10 pedindo valores ao usuário. Em
seguida, calcule e salve num segundo vetor o quadrado de cada elemento do primeiro vetor. Por fim,
imprima os dois vetores.

#include <stdio.h>
int main() {
int vetor[10];
int quad[10];
printf("Digite 10 números inteiros:\n");
for (int i = 0; i < 10; i++) {
printf("Numero %d:", i + 1);
scanf("%d", &vetor[i]);
}
for (int i = 0; i < 10; i++) {
quad[i] = vetor[i] * vetor[i];
}
printf("\n\nVetor dos quadrados:\n");
for (int i = 0; i < 10; i++) {
printf("%d ", quad[i]); }
return 0;}
2. Faça um programa que some o conteúdo de dois vetores de tamanho 25 e armazene o resultado em
um terceiro vetor. Imprima os três vetores na tela.

#include <stdio.h>
int main() {
int vetor1[25], vetor2[25], soma[25];
printf("Digite 25 números inteiros para o
primeiro vetor:\n");
for (int i = 0; i < 25; i++) {
printf("Numero %d:", i + 1);
scanf("%d", &vetor1[i]);
}
printf("Digite 25 números inteiros para o
segundo vetor:\n");
for (int i = 0; i < 25; i++) {
printf("numero %d:", i + 1);
scanf("%d", &vetor2[i]);
}
// Soma dos vetores
for (int i = 0; i < 25; i++) {
soma[i] = vetor1[i] + vetor2[i];
}
printf("\n\nVetor soma:\n");
for (int i = 0; i < 25; i++) {
printf("%d ", soma[i]);
}
printf("\n");
return 0;}
3. Escrever um programa que lê um vetor N de tamanho 20 e o imprime na tela. Em seguida, troque o
1o elemento com o último, o 2a com o penúltimo, ... até o 10a com o 11o. Imprima o vetor N
modificado.

#include <stdio.h>
int main() {
int vetor[20];
printf("Digite 20 números inteiros:\n");
for (int i = 0; i < 20; i++) {
printf("Numero %d: ", i + 1);
scanf("%d", &vetor[i]);}
printf("\nVetor original:\n");
for (int i = 0; i < 20; i++) {
printf("%d ", vetor[i]);}
// vetor decrescente
for (int i = 0; i < 10; i++) {
int temp = vetor[i];
vetor[i] = vetor[20 - 1 - i];
vetor[20 - 1 - i] = temp; }
printf("\nVetor modificado:\n");
for (int i = 0; i < 20; i++) {
printf("%d ", vetor[i]);}
printf("\n");
return 0;}
4. Uma pequena loja de artesanato possui apenas um vendedor e comercializa 10 tipos de objetos
diferentes. O vendedor recebe um salário de R$1100,00 acrescido de 5% do valor total de suas
vendas. O valor unitário dos objetos deve ser informado e armazenado em um vetor; a quantidade
vendida de cada objeto deve ficar em outro vetor, mas na mesma posição. Crie um programa que
receba os preços e as quantidades vendidas, armazenando-os em seus respectivos vetores. Depois,
determine e mostre:
a) A quantidade vendida, valor unitário e valor total de cada objeto. Ao final, deverão ser mostrados o valor
total das vendas e o valor da comissão que será paga ao vendedor.
b) O valor do objeto mais vendido e sua posição no vetor (em caso de empates mostre todos empatados).

5. Faça um programa que receba a temperatura média de cada mês do ano, armazenando-as em um
vetor. Ao final, mostre a maior e a menor temperatura do ano e em que mês ocorreram (mostrar o
mês por extenso: janeiro, fevereiro ...). Desconsidere empates.
6. Faça um programa que leia 10 números reais e os armazene em um vetor.
Em seguida, leia um código inteiro e faça uma das ações abaixo:
0 – Finaliza o programa;
1 – Imprime o vetor na ordem do início ao fim;
2 – Imprime o vetor na ordem inversa (do fim para o início).
O programa deve funcionar até que o usuário digite 0 para finalizar.

7. Faça um programa para ordenar um vetor com 100 números inteiros. Imprima o vetor antes e após a
ordenação.

#include <stdio.h>
#define TAMANHO 100
void imprimir_vetor(int vetor[], int tamanho) {
for (int i = 0; i < tamanho; i++) {
printf("%d ", vetor[i]); }}

void ordenar_vetor(int vetor[], int tamanho) {


for (int i = 0; i < tamanho - 1; i++) {
for (int j = 0; j < tamanho - i - 1; j++) {
if (vetor[j] > vetor[j + 1]) {
// Troca os elementos
int temp = vetor[j];
vetor[j] = vetor[j + 1];
vetor[j + 1] = temp;}}}}
int main() {
int vetor[TAMANHO];
printf("Digite 100 números inteiros:\n");
for (int i = 0; i < TAMANHO; i++) {
printf("Número %d: ", i + 1);
scanf("%d", &vetor[i]);}
printf("\nVetor antes da ordenação:\n");
imprimir_vetor(vetor, TAMANHO);

ordenar_vetor(vetor, TAMANHO); // Ordenando o vetor

printf("\nVetor após a ordenação:\n");


imprimir_vetor(vetor, TAMANHO);
return 0;}

8. Faça um programa que calcule e imprima a soma de todos os elementos de uma matriz 5x7.
#include <stdio.h>
int main() {
int matriz[5][7];
int soma = 0;
printf("Digite os elementos da matriz 5x7:\n");
for (int i = 0; i < 6; i++) {
for (int j = 0; j < 8; j++) {
printf("Numero [%d][%d]: ", i, j);
scanf("%d", &matriz[i][j]); }}
for (int i = 0; i < 6; i++) {
for (int j = 0; j < 8; j++) {
soma += matriz[i][j]; } }
printf("\nA soma de todos os elementos da
matriz 5x7 é: %d\n", soma);
return 0;}

9. Crie um programa que preencha uma matriz 5x10 com números inteiros. Em seguida faça:
a) some cada uma das linhas armazenando o resultado em um vetor;
b) some cada uma das colunas armazenando o resultado em um vetor;
c) imprima os dois vetores identificando qual é a soma das linhas e qual é a soma das colunas.

10. Dadas duas matrizes A e B 3x3, faça um programa para calcular a soma das matrizes e salvar em
uma matriz C. Imprima as três matrizes.
#include <stdio.h> void somar_matrizes(int
matrizA[TAMANHO][TAMANHO], int
#define TAMANHO 3
matrizB[TAMANHO][TAMANHO], int
void ler_matriz(int matrizC[TAMANHO][TAMANHO]) {
matriz[TAMANHO][TAMANHO], char nome) {
for (int i = 0; i < TAMANHO; i++) {
printf("Digite os elementos da matriz %c
for (int j = 0; j < TAMANHO; j++) {
(3x3):\n", nome);
matrizC[i][j] = matrizA[i][j] +
for (int i = 0; i < TAMANHO; i++) {
matrizB[i][j];}}}
for (int j = 0; j < TAMANHO; j++) {
int main() {
printf("Numero [%d][%d]: ", i, j);
int matrizA[TAMANHO][TAMANHO];
scanf("%d", &matriz[i][j]);}}}
int matrizB[TAMANHO][TAMANHO];
void imprimir_matriz(int
int matrizC[TAMANHO][TAMANHO];
matriz[TAMANHO][TAMANHO], char nome) {
ler_matriz(matrizA, 'A'); // leitura matriz A
printf("\nMatriz %c (3x3):\n", nome);
ler_matriz(matrizB, 'B'); // leitura matriz B
for (int i = 0; i < TAMANHO; i++) {
somar_matrizes(matrizA, matrizB, matrizC);
for (int j = 0; j < TAMANHO; j++) {
imprimir_matriz(matrizA, 'A');
printf("%d ", matriz[i][j]);}
imprimir_matriz(matrizB, 'B');
printf("\n");}}
imprimir_matriz(matrizC, 'C');
return 0;}
11. Faça um programa que imprima na tela a diagonal principal de uma matriz 5x5.

#include <stdio.h>
#define TAMANHO 5
void imprimir_diagonal_principal(int
matriz[TAMANHO][TAMANHO]) {
printf("Diagonal principal:\n");
for (int i = 0; i < TAMANHO; i++) {
printf("%d ", matriz[i][i]);}}
int main() {
int matriz[TAMANHO][TAMANHO];
printf("Digite os elementos da matriz 5x5:\n");
for (int i = 0; i < TAMANHO; i++) {
for (int j = 0; j < TAMANHO; j++) {
printf("Elemento [%d][%d]: ", i, j);
scanf("%d", &matriz[i][j]); }}
imprimir_diagonal_principal(matriz);
return 0;}

12. Faça um programa que imprima na tela a diagonal secundária de uma matriz 7x7.
#include <stdio.h>
#define TAMANHO 7
void imprimir_diagonal_secundaria(int
matriz[TAMANHO][TAMANHO]) {
printf("Diagonal secundária:\n");
for (int i = 0; i < TAMANHO; i++) {
printf("%d ", matriz[i][TAMANHO - i -
1]);}}
int main() {
int matriz[TAMANHO][TAMANHO];
printf("Digite os elementos da matriz 7x7:\n");
for (int i = 0; i < TAMANHO; i++) {
for (int j = 0; j < TAMANHO; j++) {
printf("Elemento [%d][%d]: ", i, j);
scanf("%d", &matriz[i][j]);}}
// Imprimindo a diagonal secundária
imprimir_diagonal_secundaria(matriz);
return 0;}

13. Faça um programa para calcular a transposta de uma matriz 5 x 4. Imprima as duas matrizes na tela.
#include <stdio.h>
#define LINHAS 5
#define COLUNAS 4
void imprimir_matriz(int matriz[LINHAS][COLUNAS], int linhas, int colunas) {
for (int i = 0; i < linhas; i++) {
for (int j = 0; j < colunas + 1; j++) {
printf("%d ", matriz[i][j]);}}}
void calcular_transposta(int matriz[LINHAS][COLUNAS], int transposta[COLUNAS][LINHAS]) {
for (int i = 0; i < LINHAS; i++) {
for (int j = 0; j < COLUNAS; j++) {
transposta[j][i] = matriz[i][j];}}}
int main() {
int matriz[LINHAS][COLUNAS];
int transposta[COLUNAS][LINHAS];
printf("Digite os elementos da matriz 5x4:\n");
for (int i = 0; i < LINHAS; i++) {
for (int j = 0; j < COLUNAS; j++) {
printf("Numero [%d][%d]: ", i, j);
scanf("%d", &matriz[i][j]);}}

calcular_transposta(matriz, transposta); // calculo da matriz transposta

printf("\nMatriz (5x4):\n"); // original


imprimir_matriz(matriz, LINHAS, COLUNAS);
printf("\nMatriz transposta (4x5):\n"); // transposta
imprimir_matriz(transposta, COLUNAS, LINHAS);
return 0;}
14. Faça um programa que imprima na tela apenas os valores abaixo da diagonal principal de uma matriz
4x4.
#include <stdio.h>
#define TAMANHO 4
int main() {
int matriz[TAMANHO][TAMANHO];
printf("Digite os elementos da matriz 4x4:\n");
for (int i = 0; i < TAMANHO; i++) {
for (int j = 0; j < TAMANHO; j++) {
printf("Elemento [%d][%d]: ", i, j);
scanf("%d", &matriz[i][j]);}}
printf("\nValores abaixo da diagonal
principal:\n");
for (int i = 1; i < TAMANHO; i++) {
for (int j = 0; j < i; j++) { // A coluna j vai
de 0 até i-1
printf("%d ", matriz[i][j]);}
printf("\n");}
return 0;}
15. Dada uma matriz 4 x 4 faça um programa que diga se ela é um Quadrado Mágico ou não.
n/sei
16. Faça um programa para jogar o jogo da velha. Ao final imprima o resultado do jogo e pergunte se
deseja jogar novamente.

Você também pode gostar