Exercícios sobre Vetores e Matrizes em C

Agora que já estudou tudo sobre os vetores (também conhecido por arrays) e matrizes (também conhecidas como vetores multidimensionais) em linguagem C, está na hora de treinar nossos conhecimentos.

Embora exista várias maneiras de resolver os exercícios a seguir, tente resolver usando vetores.

Aproveite para testar a boa prática de programação: divida as funções de modo que cada uma delas faça uma coisa específica. Use sempre funções, deixe sua main() a mais limpa possível.

Como obter certificação em C

Exercícios sobre vetores (arrays) e Matriz em C


00. Crie um programa em C que peça 10 números, armazene eles em um vetor e diga qual elemento é o maior, e seu valor.

01. Crie um programa em C que peça 10 números, armazene eles em um vetor e diga qual elemento é o menor, e seu valor.

02. Crie um programa em C que peça 10 números, armazene eles em um vetor e diga qual elemento é o maior, qual é o menor e que seus valores.


03. Crie um aplicativo em C que peça um número inicial ao usuário, uma razão e calcule os termos de uma P.A (Progressão Aritmética), armazenando esses valores em um vetor de tamanho 10.

04. Crie um aplicativo em C que peça um número inicial ao usuário, uma razão e calcule os termos de uma P.G (Progressão Geométrica), armazenando esses valores em um vetor de tamanho 10.

05. Escreve um programa que sorteio, aleatoriamente, 10 números e armazene estes em um vetor.
Em seguida, o usuário digita um número e seu programa em C deve acusar se o número digitado está no vetor ou não. Se estiver, diga a posição que está.







Desafio 0: Criando um tabuleiro de Jogo da Velha
Crie um tabuleiro de jogo da velha, usando uma matrizes de caracteres (char) 3x3, onde o usuário pede o número da linha (1 até 3) e o da coluna (1 até 3). A cada vez que o usuário entrar com esses dados, colocar um 'X' ou 'O' no local selecionado.

Desafio 1: Como criar um programa que checa se o número é palíndromo
Número palíndromo é aquele que, se lido de trás para frente e de frete para trás, é o mesmo.
Exemplos: 2112, 666, 2442 etc

Dica: extraia os dígitos, coloque cada dígito do número em um vetor e faça a comparação dos números (primeiro com o último, segundo com o penúltimo, terceiro com o anti-penúltimo etc).

O número deve ter 4 dígitos.

12 comentários:

Maycon disse...

Exercícios excelente, agora faltou algum conteúdo sobre ordenação de vetores.

Anônimo disse...

Codigo do exercicio 1
//inclusão de bibliotecas.
#include
#include
#define MAX 10 //tamanho do vetor, caso queira comparar mais numero altere o valor.
//------------------------------------------------------------------------------

void vetor()//função sem parametro e sem retorno.
{
int vet[3];
int menor=10000;
int cont;

for(cont=0;cont<MAX;cont++)
{
printf("\nInforme o %d%c valor: ",cont+1,167);//solicita o valor pro usuario.
scanf("%d",&vet[cont]);
if(vet[cont]<menor)//compara os valores.
menor=vet[cont];
}

printf("\nO menor: %d"menor);//exibe o menor valor.
}
//------------------------------------------------------------------------------
main()//função principal.
{
vetor();
getch();//pausa o programa.

//fim do programa.
}

Anônimo disse...

Resolução do 2º exercício

//inclusão de bibliotecas
#include
#include
#define MAX 4


int compara_maior(int vetor1[])//função que compara maior valor digitado.
{
int cont;
int maior=0;

for(cont=0;contmaior)
maior=vetor1[cont];
}
return printf("\n O maior valor eh: %d",maior);
}

int compara_menor(int vetor2[])//função que compara o menor valor digitado
{
int cont;
int menor=10000;

for(cont=0;cont<MAX;cont++)
{
vetor2[cont];
if(vetor2[cont]<menor)
menor=vetor2[cont];
}
return printf("\n O menor valor eh: %d",menor);
}

int valores(int vetor[])//função que armazena os valores digitados
{
int cont;

for(cont=0;cont<MAX;cont++)
{
printf("\nInforme o %d%c valor:",cont+1,167);
scanf("%d",&vetor[cont]);
}
}


main()//função principal.
{
int vetor_principal[MAX];//vetor principal.

//chamada de funções.
valores(vetor_principal);
compara_maior(vetor_principal);
compara_menor(vetor_principal);

getch();//pausa o programa.

//fim do programa.
}

Anônimo disse...

Detectei uma falha no código acima
por favor substituir a função compara_maior por esta que esta corrigida.
Obrigado a todos.
att+.


int compara_maior(int vetor1[])//função que compara maior valor digitado.
{
int cont;
int maior=0;

for(cont=0;contmaior)
maior=vetor1[cont];
}
return printf("\n O maior valor eh: %d",maior);
}

Anônimo disse...

Resolução do desafio 1 quem conseguir fazer mais compacto por favor postar.
att+.

#include
#include


int vet1(int vetor1[])
{
int cont;

for(cont=0;cont<4;cont++)
{
printf("\nInforme o numero %d: ",cont+1);
scanf("%d",&vetor1[cont]);
}
}

int compara(int vetor2[])
{
int cont;

for(cont=0;cont<4;cont++)
{
vetor2[cont];
}

if(vetor2[0]==vetor2[3] && vetor2[1]==vetor2[2] && vetor2[2]==vetor2[1])
return printf("\nPalindromo");

else
return printf("\nNao eh palindromo");

}

main()
{
char op='s';
int vetor_principal[TAM];

do{
system("cls");

vet1(vetor_principal);
compara(vetor_principal);

printf("\nDeseja verificar outro numero? Sim[s]Nao[n]");
op=getch();
}while(op=='s');

}

Pamela disse...

Olá, sou iniciante e gostaria de saber se tem a resolução dos exercicios pois estou com um pouco de dificuldade. Obrigada

Anônimo disse...

desafio 1, com 4 dígitos, como pede...

#include
#include


int v[100],i;
int main()
{
printf("entre com o numero, ele deve ter 4 digitos\n");
for(i=0;i<4;i++)
scanf("%d",&v[i]);


if(v[0]==v[3])
{
if(v[1]==v[2])
printf("o numero eh palindromo");
}

else
printf("o numero nao eh palindromo");


}

Donizeth disse...

Resolução do exercício 2 mais simples:

int num[10], maior=-99999, menor=99999, i=0;

for (i=0;i<10;i++){
cout << "\n Digite o "<> num[i];
if (num[i]>maior)
maior=num[i];
if (num[i]=0;k--){
cout <<"\n"<< num[k]<<" ";
}
printf ("\n Maior numero: %d \n\n Menor numero: %d \n\n",maior, menor);


vlw abraço

Donizeth disse...

Resolução mais simplificada do Exercício 2:

int num[10], maior=-99999, menor=99999, i=0;

for (i=0;i<10;i++){
cout << "\n Digite o "<> num[i];
if (num[i]>maior)
maior=num[i];
if (num[i]=0;k--){
cout <<"\n"<< num[k]<<" ";
}
printf ("\n Maior numero: %d \n\n Menor numero: %d \n\n",maior, menor);


abraço!

Anônimo disse...

Resolução simplificada do exercicio 2. O mesmo serve para o 3, só é preciso mudar o sinal de menor para maior.

#include

int main()
{
int i, v[10], menor;

for (i=0; i<10; i++)
{
scanf("%d",&v[i]);
if (v[i]<v[i-1])
menor = v[i];
}

printf("Menor: %d",menor);

return 0;
}

Brittivaldo disse...

Muito Bom esse foi o melhor ate agora. Minha tentativa no Desafio 0:

/* Curso de Programação C - C Progressivo
http://www.cprogressivo.net

Autor: Mauro Brito
Data: 11-08-14 08:45:31
Aprendendo: C Progressivo!
Plataforma Windows x86
Editor: Code::Blocks V.:13.12 */
// Programa JogoDaVelhaDOS.c

int verificar(int a, int b, char jogo[][3]){
if (jogo[a-1][b-1] == 'x' || jogo[a][b] == 'o')
return 1;

return 0;
}
int validar(int a, int b, char c){
if (a > 3 || a < 0 || b > 3 || b < 0)
return 2;

if (c != 'x' && c != 'o')
return 2;

return 0;
}
void iniciarJogo(char jogo[][3]){
int i,j;
for(i=0; i<3; i++)
for(j=0; j<3; j++)
jogo[i][j] = '-';
}
void imprimirJogo(char jogo[][3]){
int j;
printf("\n#### JOGO ATUAL ####\n");
printf(" 1 2 3\n");
for(j=0; j<3; j++)
printf("%i %c %c %c\n",(j+1),jogo[j][0],jogo[j][1],jogo[j][2]);
printf("\n");
}
int gravar(int a, int b, char c, char jogo[][3]){
int FAIL;
FAIL = validar(a,b,c);
if(FAIL != 0) return FAIL;

FAIL = verificar(a,b,jogo);
if(FAIL != 0) return FAIL;

//gravando...
jogo[a-1][b-1] = c;
//gravando...

return 0;
}
void MENU(char jogo[][3]){
iniciarJogo(jogo);
printf("### O Jogo foi Iniciado ###\n");
int num, num2, sair;
char c, cVez;
cVez = 'x';
sair = 0;

do{
printf("E a vez de %c, Jogar!\nDigite sua jogada:\nExemplo.: 1 1 x\n\t ",cVez);
scanf("%i",&num);
scanf("%i",&num2);
scanf(" %c",&c);
if (num == 0 && num2 == 0) break;
if(cVez == c)
switch(gravar(num,num2,c,jogo)){
case 1:
printf("\nJa existe marcacao na coordenada!\n");
break;
case 2:
printf("\nUm ou mais dados da coordenada esta errado.\nSiga o exemplo.\n");
break;
default:
printf("\nBoa jogada!");
if (c =='x') cVez = 'o';
else cVez = 'x';
imprimirJogo(jogo);
break;
}
else printf("Nao e sua vez de jogar: %c \n",c);

}while(sair == 0);
printf("###### GAME OVER ######");
}
int main (void){
char JOGO[3][3];
MENU(JOGO);

return 0;
}

hubert disse...

algem sabe a resolução do exercicio 5

Gostou desse tutorial de C?
Sabia que o acervo do portal C Progressivo é o mesmo, ou maior que, de um livro ou curso presencial?
E o melhor: totalmente gratuito.

Mas para nosso projeto se manter é preciso divulgação.
Para isso, basta curtir nossa página no Facebook e/ou clicar no botão +1 do Google.
Contamos e precisamos de seu apoio.