Enviar um café pro programador

Pode me ajudar a transformar cafeína em código?

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.

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.

40 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

Alan disse...

#include
#define DIM 3


void exibe(char tabuleiro[][DIM]);
int marcax(char tabuleiro[][DIM]);
int marcao(char tabuleiro[][DIM]);

int main(void)
{
char tabuleiro[DIM][DIM]={{'.','.','.'},{'.','.','.'},{'.','.','.'}};

exibe(tabuleiro);
marcax(tabuleiro);
exibe(tabuleiro);
marcao(tabuleiro);

exibe(tabuleiro);
marcax(tabuleiro);
exibe(tabuleiro);
marcao(tabuleiro);

exibe(tabuleiro);
marcax(tabuleiro);
exibe(tabuleiro);
marcao(tabuleiro);

exibe(tabuleiro);
marcax(tabuleiro);
exibe(tabuleiro);
marcao(tabuleiro);

exibe(tabuleiro);
marcax(tabuleiro);
exibe(tabuleiro);

printf("\nEND GAME");
}

void exibe(char tabuleiro[][DIM])
{
int coluna, linha;

printf("\n");

for(linha=0;linha<DIM;linha++)
{
for(coluna=0;coluna<DIM;coluna++)
printf(" %3c",tabuleiro[linha][coluna]);
printf("\n\n");
}
}

int marcax(char tabuleiro[][DIM])
{
int linha,coluna;

printf("\nJOGADOR 1\n Escolha sua posição...");
printf("\nExemplo...[linha][coluna]\n");
scanf("%d",&linha);
scanf("%d",&coluna);

tabuleiro[linha -1][coluna -1] = 'x';

return tabuleiro;
}

int marcao(char tabuleiro[][DIM])
{
int linha, coluna;

printf("\nJOGADOR 2\n Escolha sua posição...");
printf("\nExemplo...[linha][coluna]\n");
scanf("%d",&linha);
scanf("%d",&coluna);

tabuleiro[linha -1][coluna -1] = 'o';

return tabuleiro;
}

Anônimo disse...

/*Autor:Filipe Gabriel da Silva
Exercicio 2
Usando em C++
*\


#include
using namespace std;

main()
{
int a, maior=0, menor, num[10];
menor=num[0];

for(a=0; a<10; a++)
{
cout<<"Digite o numero do "<>num[a];

if(num[a]>maior)
{
maior=num[a];
}
if(num[a]<=menor)
{
menor=num[a];
}
}
if((num[0<10])!=(num[0>10]))
{
for(a=0; a<10; a++)
{
if(maior==num[a])
{
cout<<"\nO maior numero eh "<<maior<<" e esta no elemento:"<<a<<"\n";
}
if(menor==num[a])
{
cout<<"\nO menor numero eh "<<menor<<" e esta no elemento:"<<a<<"\n";
}
}
}
else if(num[0]==num[1]==num[2]==num[3]==num[4]==num[5]==num[6]==num[7]==num[8]==num[9])
{
cout<<"Sao iguais\n";
}
else
{
for(a=0; a<10; a++)
{
if(maior==num[a])
{
cout<<"\nO maior numero eh "<<maior<<" e esta no elemento:"<<a<<"\n";
}
if(menor==num[a])
{
cout<<"\nO menor numero eh "<<menor<<" e esta no elemento:"<<a<<"\n";
}
}
}
}

Anônimo disse...

não é necessario adotar um valor absurdamente grande na definição de "menor" no exercício 2. Segue abaixo um jeito mais "amplo" digamos assim:

#include
#include
int main(){
int vetor[10], i, maior, menor, pmaior, pmenor;
for (i=0; i<10; i++){
printf ("\nDigite o valor da posicao %d do vetor:\t", i);
scanf ("%d", &vetor[i]);
if (vetor[i]==vetor[0]){
maior=vetor[i];
menor=vetor[i];
pmaior=i;
pmenor=i;
}
if (vetor[i]>maior){
maior=vetor[i];
pmaior=i;
}
if (vetor[i]<menor){
menor=vetor[i];
pmenor=i;
}
}
printf("\n\nO maior valor do vetor e:%d\tE sua posicao e:%d\n", maior, pmaior);
printf("\n\nO menor valor do vetor e:%d\tE sua posicao e:%d\n", menor, pmenor);
system ("pause");
return 0;
}

Anônimo disse...

Solução mais elegante que eu consegui do exercício 2 :)

#include
#define MAX 10

void recebe();
int maior(int a,int b);
int menor(int a, int b);
int testemaior();
int testemenor();

int main(void)
{
int numero[MAX];
int Maior, Menor;

recebe(numero);
Maior = testemaior(numero);
Menor = testemenor(numero);

printf("maior: %d\n",Maior);
printf("menor: %d\n",Menor);

}

int maior(int a , int b)
{
if(a > b)
return a;
else
return b;
}

int menor(int a , int b)
{
if(a < b)
return a;
else
return b;
}

void recebe(int numero[])
{
int cont;

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

int testemaior(int numero[])
{
int cont;
int Maior;

Maior = maior(numero[0],numero[1]);

for(cont = 0 ; cont < MAX ; cont++)
{
Maior = maior(numero[cont],Maior);
}
return Maior;
}

int testemenor(int numero[])
{
int cont;
int Menor;

Menor = menor(numero[0],numero[1]);

for(cont = 0 ; cont < MAX ; cont++)
{
Menor = menor(numero[cont],Menor);
}
return Menor;
}

Unknown disse...

Desafio 0, jogo da velha.. Sou amador. mas deu certo!!!kkk!!!

#include
#include
#include

void main(void)
{
do {
char escolha, tabuleiro[3][5], jogadas[3][3];
int limite = 0, i, j, k, linha, coluna, jog = 0, vitoria = 0;
//inicializando vetores
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
jogadas[i][j] = NULL;
}
}
for (i = 0; i < 3; i++)
{
for (j = 0; j < 5; j++)
{
tabuleiro[i][j] = NULL;
}
}
do{
do {
system("cls");
//imprimindo tabuleiro
for (i = 0; i < 3; i++)
{
for (j = 1; j < 5; j += 2)
{
tabuleiro[i][j] = '|';
}
}
for (i = 0; i < 3; i++)
{
printf(" ");
for (j = 0; j < 5; j++)
{

printf("%c", tabuleiro[i][j]);
}
printf("\n");
}
//Capturando jogada
if (jog == 0)
{
printf("\n Player 1 ('X'):\n");
escolha = 1;

}
else
{
printf("\n Player 2 ('O'):\n");
escolha = 2;

}
printf(" Insira a linha: ");
scanf("%d", &linha);
printf(" Insira a coluna: ");
scanf("%d", &coluna);
system("cls");
}while(jogadas[linha - 1][coluna - 1] != NULL);

if (jogadas[linha - 1][coluna - 1] == NULL)
{
if(jog == 0)
{jog=1;}
else{jog=0;}
switch (escolha)
{
case 1:
jogadas[linha - 1][coluna - 1] = 'X';
break;

case 2:
jogadas[linha - 1][coluna - 1] = 'O';
break;
}
}
else
{
printf("Tente denovo!..\n");
}


for (i = 0; i < 3; i++)
{
k = 0;
for (j = 0; j < 5; j += 2)
{
tabuleiro[i][j] = jogadas[i][k];
k++;
}
printf("\n");
}

for (i = 0; i < 3 && !vitoria; i++)
{
if (jogadas[linha - 1][coluna - 1] == jogadas[i][0] && jogadas[i][0] == jogadas[i][1] && jogadas[i][1] == jogadas[i][2])
{
vitoria = 1;
}
else if (jogadas[linha - 1][coluna - 1] == jogadas[0][i] && jogadas[0][i] == jogadas[1][i] && jogadas[1][i] == jogadas[2][i])
{
vitoria = 1;
}
else if (jogadas[linha - 1][coluna - 1] == jogadas[0][0] && jogadas[0][0] == jogadas[1][1] && jogadas[1][1] == jogadas[2][2])
{
vitoria = 1;
}
else if (jogadas[linha - 1][coluna - 1] == jogadas[0][2] && jogadas[0][2] == jogadas[1][1] && jogadas[1][1] == jogadas[2][0])
{
vitoria = 1;
}
}
limite++;

} while (vitoria == 0 && limite < 9);
system("cls");
for (i = 0; i < 3; i++)
{
printf(" ");
for (j = 0; j < 5; j++)
{
printf("%c", tabuleiro[i][j]);
}
printf("\n");
}
printf("\n");
if(vitoria == 0)
{ printf("\n Empate\n"); }
else if (jogadas[linha - 1][coluna - 1] == ('X'))
{
printf("\n Vitoria Player 1 !!!\n");
}
else if (jogadas[linha - 1][coluna - 1] == ('O'))
{
printf("\ nVitoria Player 2!!!\n");
}

printf("\nPrecione 'q' para sair ou 'Enter' para continuar...\n");
getchar();
}while (getchar() != 'q');
}

Arrowster disse...

Então senhores a solução das questões[3] segue no código abaixo:

#include
#define INDICE 5 /*Para alterar a quantidade numeros basta mudar o valor da constante*/
int main()
{
int i,maior, menor, elemento_maior=0, elemento_menor=0, x[INDICE];
for(i=0; imaior)
{
maior=x[i];
elemento_maior=i;
}
if(x[i]<menor){
menor=x[i];
elemento_menor=i;
}
}

printf("\nMaior: %d e esta no elemento [%d].\n", maior, elemento_maior);
printf("Menor: %d e esta no elemento [%d].\n", menor, elemento_menor);
return 0;
}

Arrowster disse...

Fiz o exercicio 5, porem a forma para faze-lo nao foi explicitada no site, pesquisei, estudei e consegui elaborar o programa, segue abaixo com explicações:

#include
#include/*Necessaria para as funcoes 'rand' e 'srand'.*/
#include/*Necessaria para a funcao 'time'.*/
#define CONST 10
int main ()
{
int a, sair=1, i, consta, posicao, num[CONST];/*declaração de variaveis*/

srand(time(NULL));
/*A função 'srand' fornecerá um valor inicial(chamado de semente) que se faz necessário para
que o algoritmo interno da funcao 'rand' possa calcular os valores aleatórios.

Sem a 'srand' o valor inicial da 'rand' sempre será 1(um) gerando os mesmos valores aleatórios
sempre que executarmos o programa.

A 'srand' utiliza o relógio do SO (Sistema Operacional) que você esta usando. Ela pega todos os segundos
que se passaram desde a data fixa de 1 de janeiro de 1970 ate a data atual e fornece para a 'rand'
como valor inicial.

Desse modo os valores aleatórios sempre irão mudar ao executarmos o programa
pois serao momentos diferentes. A função 'time(NULL)' pega os segundos do relógio do SO por meio de
seu algoritmo interno.*/
for(i=0; i<CONST; i++)
{
num[i]=rand()%100;/*A função 'rand()' nos fornece os valores aleatórios numa faixa fixa de
0(zero) ate um valor especificado pelo programador(no caso deste programa o valor é o 100(cem))*/
}
while(sair==1) /*loop para o usuário tentar de novo se quiser*/
{

printf("\n Digite um numero entre 0 e 100: \n");
scanf("%d", &a);
for(i=0; i<CONST; i++)
{
if(num[i]==a)
{
consta=num[i];
posicao=i;
}
}
if(consta==a)
{

printf("\n Parabens, voce acertou!");
printf("\n O numero %d esta no vetor de numero %d",a, posicao);
printf("\n A sequencia aleatoria era: ");
for(i=0; i<CONST; i++)
{
printf("%d ", num[i]);
}
break;
}
else
{
printf("\n Nao esta no vetor.\n");
printf("\n-----------------------------------------------------");
printf("\n Deseja tentar de novo?\n (Digite '1' para SIM ou qualquer outra tecla para sair...) ");
printf("\n-----------------------------------------------------\n");
scanf("%d", &sair);
}
}
return 0;
}

William Maia Dias disse...

EXE 3 ->

#include
#include

/* 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. */

int main () {

int vetor[10], numero, razao, i=0;

printf("Digite um numero: ");
scanf("%d", &numero);

printf("\nDigite a razao: ");
scanf("%d", &razao);

vetor[i] = numero;
printf("\n");

for(i = 0; i < 10; i++){

vetor[i+1] = vetor[i] + razao;

}

printf("-PROGRESSAO ARITIMETICA-");

for (i = 0; i < 10; i++){

printf("\n%d", vetor[i]);


}

system ("pause");
return 0;
}

Unknown disse...

fiz em c# o desafio 1;

static void Main(string[] args)
{
int[] valores = new int[4];
int[] temp = new int[4];
int count = 0;
for(int i=0; i<4; i++)
{
Console.WriteLine("Digite o {0} numero", i + 1);
valores[i] = Convert.ToInt32(Console.ReadLine());
}
for(int i=3; i>-1; i--)
{
temp[count] = valores[i];
count++;
}
Boolean verificar = true;
for(int i=0; i<4; i++)
{
if (valores[i] != temp[i])
{
verificar = false;
break;
}
}
Console.WriteLine(verificar ? "Numero é palindromo" : "Numero nao é palindromo");
Console.ReadLine();
}

Anônimo disse...

Ae, finalmente consegui o exercicio 0 de maneira satisfatória:

#include
#define TOTAL 10

int recebenumero(int a[TOTAL]);
int verifica_numero(int a[TOTAL]);

int main()
{
int numeros[TOTAL];

printf("Digite 10 numeros diferentes:\n\n");
recebenumero(numeros);
verifica_numero(numeros);

return 0;
}

int recebenumero(int a[TOTAL])
{
int count;

for(count=0 ; count<TOTAL ; count++)
{
printf("Numero %d: ",1+count);
scanf("%d",&a[count]);
}
}

int verifica_numero(int a[TOTAL])
{
int maior,elemento,count=0,linha=0;

maior=a[count];

for(count,linha; count<TOTAL ; count++,linha++)
{
if(maior<a[linha])
maior=a[linha],elemento=1+linha;

else
continue;

}
printf("\nO maior numero eh %d, que esta localizado no elemento: %d\n\n",maior,elemento);


}

Anônimo disse...

como posso fazer um programa em C que calcule varias matriz que tenha um código um menu Switch. e o usuário que escolhe o tamanho e função que deseja realizar?

Unknown disse...

// Exercício 5

#include
#include
#include
#define DIM 10

void sorteio(int vetor[]){
int i;
srand((unsigned) time (NULL));
for(i = 0; i < DIM; i++){
vetor[i] = rand() % 101;
}
}
void tentativas(int vetor[]){
int numero,i,continuar=1;
while(continuar){
printf("Digite um número: ");
scanf("%d",&numero);
for(i = 0; i < DIM; i++){
if(numero == vetor[i]){
printf("o número digitado está no vetor: %d\n", i);
continuar = 0;
break;
}
}
}
}

int main(){
int vetor[DIM];
sorteio(vetor);
tentativas(vetor);
return 0;
}

Rayller disse...
Este comentário foi removido pelo autor.
Rayller disse...

RESOLUÇÃO DO EXERCICIO 5 FUNCIONANDO CORRETAMENTE.
#include
#include
#include
#define DIM 10
/*PROGRAMA CRIADO PARA REALIZAR O EXERCICIO 5 DE VETORES
DA PAGINA HTTP://CPROGRESSIVO.NET.
DATA: 14/06/2017
CRIADO POR: RAYLLER EMERY
*/

void vetores(int numeros[]){
int count;

srand((unsigned)time(NULL));

for(count = 0; count < DIM; count++){
numeros[count] = 1 + (rand()%50);
}
}

void testar(int numeros[]){
int n, count;

do{
printf("Digite seu numero: ");
scanf("%d", &n);
for(count = 0; count < DIM; count++){
getchar();
system("cls||clean");
if(n == numeros[count]){
printf("Voce acertou meu querido!\n");
printf("Seu numero: %d\n\n", n);
printf("Numero do vetor %d: %d\n\n", count, numeros[count]);
break;
}
else{
printf("Voce errou!\n");
printf("Seu numero: %d\n\n", n);
printf("Numero do vetor %d: %d\n\n", count, numeros[count]);

}

}
getchar();
system("cls||clean");
}while(numeros[count] != n);
}

int main (){
int numeros[DIM];

vetores(numeros);
testar(numeros);

return 0;
}

Unknown disse...

Questão 5:

#include < stdio.h >
#include < stdlib.h >
#include < time.h >
#include < locale.h >

#define TAM 10

int main () {
int i, vet[TAM], aposta = 0, conta = 0;

setlocale(LC_ALL, "Portuguese");

srand((unsigned) time (NULL));

for (i = 0; i < TAM; i++) {
vet[i] = (1 + rand() % 20);
}

printf("\t LOTERIA\n\n");
printf("- Digite sua aposta, um número de 1 a 20:");
scanf("%d", &aposta);

for (i = 0; i < TAM; i++) {
if (vet[i] == aposta) {
printf("\n\nNa %dª posição", i + 1);
conta++;
}
}

if (conta > 0) {
printf("\n\nSua aposta foi sorteada %d vez(es)!\n\n", conta);
} else {
printf("\n\nSua aposta não foi sorteada.\n\n");
}

system("pause");
return 0;
}

Unknown disse...

Desafio 1:

#include < stdio.h >
#include < stdlib.h >
#include < locale.h >

#define TAM 4

int main () {
int i, numero = 0, contador = 0;
char palin[TAM];

setlocale(LC_ALL, "Portuguese");

printf("- Digite um número de 4 digitos: ");
gets(palin);

contador = TAM;

for (i = 0; i < TAM; i++) {
if (palin[i] == palin[contador - 1]) {
contador--;
}
}
if (contador == 0) {
printf("\n\nEsse(a) número/palavra é um palindromo.\n\n");
} else {
printf("\n\nNão é um palindromo!\nCertifique-se de que digitou um número ou palavra de 4 digitos.");
}

system("pause");
return 0;
}

GitHub: github.com/MarcosAndre5/Palindromo/blob/master/Palindromo.c

Unknown disse...

Desafio 0:

Resposta: github.com/MarcosAndre5/PreencerJogoDaVelha/blob/master/PreencerJogoDaVelha.c

Pedro disse...

Exercício 3 resposta!

#include

int main(){
int vet[10];
int r, i;

printf("Digite o primeiro valor e digite a razao\n");
scanf("%d %d", &vet[0], &r);

for(i=0; i<9; i++){
vet[i+1] = vet[i] + r;
printf("%d , ", vet[i]);
}
}

Let's Learn disse...

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



#include
#define LENGTH 4

float createArray (float createArrayInput []);
float printArray (float printArrayInput []);
float larger (float Array []);

float main(void)
{
float array [LENGTH];
createArray(array);
printArray(array);
printf("\n\t O maior elemento e: %3.2f \n", larger(array));
system("pause");
}

float createArray (float createArrayInput [])
{
int counter;
printf("\t Entre com os %d elementos do Array \n", LENGTH);
for ( counter = 1; counter <=LENGTH; counter++ )
scanf("%f", &createArrayInput[counter]);
}

float printArray (float printArrayInput [])
{
int counter;
printf("\t Os 10 elementos do Array sao: \n");
for ( counter = 1; counter <=LENGTH; counter++ )
printf("\t Elemento %2d: %3.2f \n", counter, printArrayInput [counter]);
}

float larger (float Array [])
{
int counter, larger;
larger = Array [0];
for ( counter = 1; counter <=LENGTH; counter++ )
if ( Array[counter] > larger )
larger = Array[counter];
return larger;
}

Let's Learn disse...

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

OBSERVAÇÃO: Se um dos elementos do vetor é negativo o programa funciona.
Se nenhum elemento é negativo o menor numero retornado é igual a Zero (0).
Alguém consegue me dizer qual o erro?


#include
#define LENGTH 4

float createArray (float createArrayInput []);
float printArray (float printArrayInput []);
float smaller (float Array []);
float larger (float Array []);

float main(void)
{
float array [LENGTH];
createArray(array);
printArray(array);
printf("\n\t O menor elemento e: %3.2f \n", smaller(array));
printf("\n\t O maior elemento e: %3.2f \n", larger(array));

system("pause");
}

float createArray (float createArrayInput [])
{
int counter;
printf("\t Entre com os %d elementos do Array \n", LENGTH);
for ( counter = 1; counter <=LENGTH; counter++ )
scanf("%f", &createArrayInput[counter]);
}

float printArray (float printArrayInput [])
{
int counter;
printf("\t Os 10 elementos do Array sao: \n");
for ( counter = 1; counter <=LENGTH; counter++ )
printf("\t Elemento %2d: %3.2f \n", counter, printArrayInput [counter]);
}

float smaller (float Array [])
{
int counter;
float smaller;
smaller = Array [0];
for ( counter = 1; counter <=LENGTH; counter++ )
{
if ( Array[counter] < smaller )
smaller = Array[counter];
}
return smaller;
}

float larger (float Array [])
{
int counter;
float larger;
larger = Array [0];
for ( counter = 1; counter <=LENGTH; counter++ )
if ( Array[counter] > larger )
larger = Array[counter];
return larger;
}

Let's Learn disse...

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.


Alguém pode me dizer qual o problema? Acredito ser um problema com o tipo "float" ou com o comando scanf.
O código em linguagem C a seguir pede ao usuário que entre com 4 números, armazena em um vetor, mostra qual o maior número e o menor número.

Quando entre os 4 números há um número negativo o programa roda bem.
Quando todos os 4 números são positivos o programa não mostra o menor número, ao invés disso ele mostra o zero.
Quando entro com um número decimal o programa não deixa entrar com os demais números e também não mostra o menor número.




#include
#include
#define LENGTH 4

float createArray (float createArrayInput []);
float printArray (float printArrayInput []);
float smaller (float Array []);
float larger (float Array []);

float main(void)
{
setlocale(LC_ALL, "Portuguese");
float array [LENGTH];
createArray(array);
printArray(array);
printf("\n\t O menor elemento é: %3.2f \n", smaller(array));
printf("\n\t O maior elemento é: %3.2f \n\n", larger(array));

system("pause");
}

float createArray (float createArrayInput [])
{
int counter;
printf("\t Entre com os %d elementos do Array \n", LENGTH);
for ( counter = 1; counter <= LENGTH; counter++ )
{
printf("\t \t");
scanf(" %f", &createArrayInput[counter]);
}
}

float printArray (float printArrayInput [])
{
int counter;
printf("\n \t Os 10 elementos do Array são: \n\n");
for ( counter = 1; counter <= LENGTH; counter++ )
printf("\t Elemento %2d: %3.2f \n", counter, printArrayInput [counter]);
}

float smaller (float Array [])
{
int counter;
float smaller;
smaller = Array [0];
for ( counter = 1; counter <= LENGTH; counter++ )
{
if ( Array[counter] < smaller )
smaller = Array[counter];
}
return smaller;
}

float larger (float Array [])
{
int counter;
float larger;
larger = Array [0];
for ( counter = 1; counter <= LENGTH; counter++ )
if ( Array[counter] > larger )
larger = Array[counter];
return larger;
}

Let's Learn disse...

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

//https://pt.wikipedia.org/wiki/Progress%C3%A3o_geom%C3%A9trica

#include
#include
#include
#define NUMERO_DE_TERMOS 10

int calculoPg (int an_NesimoTermo[], int primeiroTermo, int RAZAO);

int main(void)
{
int a1_primeiroTermo, razao;
int an_NesimoTermo [NUMERO_DE_TERMOS];
setlocale(LC_ALL, "Portuguese");
printf("\t Calculo do n-ésimo termo de uma Progressão Geométrica");
printf("\n\n \t Entre com o primeiro termo da PG ");
scanf("%d", &a1_primeiroTermo);
printf(" \t Entre com a razão da PG ");
scanf("%d", &razao);

calculoPg(an_NesimoTermo, a1_primeiroTermo, razao);
printf("\n\n");

}

int calculoPg (int an_NesimoTermoInput[], int primeiroTermo, int RAZAO)
{
int counter;
for ( counter = 1; counter <= NUMERO_DE_TERMOS; counter++ )
{
an_NesimoTermoInput [counter - 1] = primeiroTermo * pow (RAZAO, counter - 1) ;
printf("\n \t O Termo numero %3d é: %3d", counter, an_NesimoTermoInput [counter - 1]);
}
}

Let's Learn disse...

//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á.


#include
#include
#include
#define LENGTH 10

int sortear (int vetorAleatorioInput[]);
int adivinhar (int vetorSorteadoInput[] );

int main(void)
{
int vetorAleatorio [LENGTH];
setlocale(LC_ALL, "Portuguese");
sortear (vetorAleatorio);
adivinhar (vetorAleatorio);
}

int sortear (int vetorAleatorioInput[])
{
int counter;
srand(time(NULL));
printf("\t Sorteando 10 numeros e armazenando em um Vetor... \n");
for ( counter = 0; counter < LENGTH; counter++ )
{
vetorAleatorioInput [counter] = 1+ rand() % LENGTH * 3;
printf("\n\t\t O elemento %4d é: %4d", counter + 1, vetorAleatorioInput [counter]);
}
printf("\n");
}

int adivinhar (int vetorSorteadoInput[] )
{
int tentativa, counter, tentativaFrustada = 0;
printf("\n\t Tente adivinhar um dos numeros sorteados (Faixa de 1 a %4d). Tente um numero: ", LENGTH *3);
scanf("%d", &tentativa);
for ( counter = 0; counter < LENGTH; counter++ )
{
if ( tentativa == vetorSorteadoInput [counter] )
printf("\n\t O numero %3d foi sorteado e esta armazenado na posição %3d do vetor", tentativa, counter + 1 );
else
tentativaFrustada++;
}
if ( tentativaFrustada == LENGTH )
printf("\n\t O numero %3d não foi sorteado \n", tentativa);
}

Let's Learn disse...

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

//https://pt.wikipedia.org/wiki/Progress%C3%A3o_aritm%C3%A9tica

#include
#include
#define NUMERO_DE_TERMOS 10

int calculoPa (int an_NesimoTermo[], int primeiroTermo, int RAZAO);

int main(void)
{
int a1_primeiroTermo, razao;
int an_NesimoTermo [NUMERO_DE_TERMOS];
setlocale(LC_ALL, "Portuguese");
printf("\t Calculo do n-ésimo termo de uma Progressão aritmética");
printf("\n\n \t Entre com o primeiro termo da PA ");
scanf("%d", &a1_primeiroTermo);
printf(" \t Entre com a razão da PA ");
scanf("%d", &razao);

calculoPa(an_NesimoTermo, a1_primeiroTermo, razao);
printf("\n\n");

}

int calculoPa (int an_NesimoTermoInput[], int primeiroTermo, int RAZAO)
{
int counter;
for ( counter = 1; counter <= NUMERO_DE_TERMOS; counter++ )
{
an_NesimoTermoInput [counter - 1] = primeiroTermo + (counter - 1) * RAZAO;
printf("\n \t O Termo numero %3d é: %3d", counter, an_NesimoTermoInput [counter - 1]);
}
}

Let's Learn disse...

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

#include
#include
#define LENGTH 4

float createArray (float createArrayInput []);
float printArray (float printArrayInput []);
float smaller (float Array []);
float larger (float Array []);

float main(void)
{
setlocale(LC_ALL, "Portuguese");
float array [LENGTH];
createArray(array);
printArray(array);
printf("\n\t O menor elemento é: %3.2f \n", smaller(array));
printf("\n\t O maior elemento é: %3.2f \n\n", larger(array));

system("pause");
}

float createArray (float createArrayInput [])
{
int counter;
printf("\t Entre com os %d elementos do Array \n", LENGTH);
for ( counter = 0; counter < LENGTH; counter++ )
{
printf("\t \t");
scanf(" %f", &createArrayInput[counter]);
}
}

float printArray (float printArrayInput [])
{
int counter;
printf("\n \t Os 10 elementos do Array são: \n\n");
for ( counter = 0; counter < LENGTH; counter++ )
printf("\t Elemento %2d: %3.2f \n", counter, printArrayInput [counter]);
}

float smaller (float Array [])
{
int counter;
float smaller;
smaller = Array [0];
for ( counter = 0; counter < LENGTH; counter++ )
{
if ( Array[counter] < smaller )
smaller = Array[counter];
}
return smaller;
}

float larger (float Array [])
{
int counter;
float larger;
larger = Array [0];
for ( counter = 0; counter < LENGTH; counter++ )
if ( Array[counter] > larger )
larger = Array[counter];
return larger;
}

Let's Learn disse...

/*Desafio 1: Como criar um programa que checa se o número é palíndromo

Autor: "Let's learn"

Tue Nov 12 20:12:41 2017

#include stdio.h
#include locale.h
#include time.h */


#include
#include
#include

int extraiDigito_4 (const float imputNumber, float inputDigitos[4]);
int extraiDigito_3 (const float imputNumber, float inputDigitos[4]);
int extraiDigito_2 (const float imputNumber, float inputDigitos[4]);
int extraiDigito_1 (const float imputNumber, float inputDigitos[4]);
int palindromo (float inputDigitos[4]);

int main(void)
{
setlocale(LC_ALL, "Portuguese");
float number;
float digitos[4];
do
{
printf("\n\t Verificando se um número é palíndromo... (Maximo de 4 digitos e deve ser positivo)\n");
printf("\t Entre com o numero a ser verificado. \n\t Ou '0' (zero) para sair ");
scanf("%f", &number);
if (( number < 0 ) || ( number > 9999 ))
{
printf("\n\n\t O Numero digitado é = %.0f \n", number);
printf("\n\t O numero deve a ser positivo e com no maximo 4 digitos. \n");
printf("\t Tente de novo! \n\n");
system("pause");
system("cls || clear");
}
else if (number == 0)
continue;
else
{
printf("\n\n\t O Numero digitado é = %.0f \n", number);
extraiDigito_1( number, digitos );
extraiDigito_2( number, digitos );
extraiDigito_3( number, digitos );
extraiDigito_4( number, digitos );
palindromo ( digitos );
printf("\n\n");
system("pause");
system("cls || clear");
}

}while (number != 0);
}

int extraiDigito_4 (const float imputNumber, float inputDigitos[4])
{
inputDigitos[3] = ((imputNumber/10) - floor(imputNumber/10))*10;
printf("\n\t Digito 4 = %.0f \n", inputDigitos[3] );
}

int extraiDigito_3 (const float imputNumber, float inputDigitos[4])
{
inputDigitos[2] = floor(((imputNumber/100) - floor(imputNumber/100))*10);
printf("\n\t Digito 3 = %.0f", inputDigitos[2] );
}

int extraiDigito_2 (const float imputNumber, float inputDigitos[4])
{
printf("\n\n Extraindo Digito 2...");
printf("\n imputNumber = %f", imputNumber);
printf("\n (imputNumber/1000) = %f", (imputNumber/1000));
printf("\n (floor(imputNumber/1000)) = %f", floor(imputNumber/1000));
printf("\n (((imputNumber/1000) - floor(imputNumber/1000))*10) = %f", (((imputNumber/1000) - floor(imputNumber/1000))*10));
printf("\n floor(((imputNumber/1000) - floor(imputNumber/1000))*10) = %f", floor(((imputNumber/1000) - floor(imputNumber/1000))*10));
printf("\n floor (2.0) = %f", floor (2.0) );
printf("\n ((1.2 - 1)*10) = %f", ((1.2 - 1)*10) );
printf("\n floor ((1.2 - 1)*10) = %f", floor((1.2 - 1)*10) );
inputDigitos[1] = floor(((imputNumber/1000) - floor(imputNumber/1000))*10);
printf("\n\n\t Digito 2 = %.0f", inputDigitos[1] );
}

int extraiDigito_1 (const float imputNumber, float inputDigitos[4])
{
inputDigitos[0] = floor(((imputNumber/10000) - floor(imputNumber/10000))*10);
printf("\n\t Digito 1 = %.0f", inputDigitos[0] );
}

int palindromo (float inputDigitos[4])
{
if ((inputDigitos[0] == inputDigitos[3]) && (inputDigitos[1] == inputDigitos[2]))
printf("\n\t O número é palíndromo.");
else if ((inputDigitos[0] == 0) && (inputDigitos[1] == inputDigitos[3]))
printf("\n\t O número é palíndromo.");
else if ((inputDigitos[0] == 0) && (inputDigitos[0] == 0) && (inputDigitos[2] == inputDigitos[3]))
printf("\n\t O número é palíndromo.");
else
printf("\n\t O número NÂO é palíndromo. \n\n");
}

Guilherme disse...

Resolução desafio 1 em c.

#include
#include
#include

int main(){
int numero,
i = 10,
aux = 1,
tamanho = 1;

printf("Digite um numero:\n");
scanf("%i",&numero);
// encontrando o tamanho do número
while(i == pow(10,tamanho)){
if( (numero/i) >= 10){
i = i * 10;
tamanho++;
}else{
tamanho++;
}
}
// transformando o numero em um vetor
int vet[tamanho];

for(int j=0;j<tamanho;j++){
vet[j] = numero/i;
numero = numero%i;
i = i/10;
}

//verificando se é palindromo
for(int j=0;j<(tamanho/2);j++){
if(vet[j] != vet[(tamanho-1)-j]) aux = 0;
}

if(aux){
printf("O numero e palindromo");
}else{
printf("O numero nao e palindromo");
}

return 0;
}

Anônimo disse...

Resolução do desafio 1:
#include

void valores(int vetor[]){
int i;
printf("Digite o numero em partes, separado por espacos\tEXEMPLO 234 = 2 3 4\n");
for(i=0;i<4;i++){
printf("Digite o valor %d: ",i);
scanf("%d",&vetor[i]);
}
}

void comparacao(int vetor[]){
if(vetor[0]==vetor[3] && vetor[1]==vetor[2]){
printf("\nPalindromo!\n");
}
else{
printf("\nNao eh palindromo!\n");
}
}

int main(){
int vetor[4];
valores(vetor);
comparacao(vetor);
}