TiagoFernandes - Challenge 2 - Moderate - C

Ir em baixo

TiagoFernandes - Challenge 2 - Moderate - C

Mensagem  TiagoFernandes em Sab Jul 16, 2011 4:26 pm

1 - Faça um programa que dado um vetor de elementos com uma repetição, encontre o elemento repetido. Ou seja, encontrar o elemento que aparece duas vezes dentro de um vetor. Detalhe: Você só pode usar um loop e os elementos exatamente são: [1,2,3,4,1,5].

 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
#include <stdlib.h>

#define TAMANHO_VETOR 6 //Uma constante para guardar o tamanho do vetor.

int main(void)
{
int vet[]={1,2,3,4,1,5};
int i, j; //Duas variáveis para servir de índice no laço
int elemento_repetido; //E outra para guardar o elemento repetido.

for(i=0, j=0; ; i++) //Laço para checar qual o elemento repetido.
{
if(i!=j) //Condição para que o elemento não seja comparado consigo mesmo.
{
if(vet[j]==vet[i]) //Se os elementos forem iguais...
{
elemento_repetido=vet[j]; //Atribuí-lo a variável elemento_repetido
break;//E sair do laço
}
if(i>=TAMANHO_VETOR)//Se o índice i alcançar o fim do vetor...
{
i=0;//Fazer o índice i voltar ao inicio
j++;//E incrementar j
}
}
}

printf("Elemento repetido = %d", elemento_repetido);//Mostrar o elemento repetido.

}
avatar
TiagoFernandes

Mensagens : 6
Data de inscrição : 02/07/2011
Idade : 28
Localização : Fortaleza

Ver perfil do usuário

Voltar ao Topo Ir em baixo

TiagoFernandes

Mensagem  Z3r0 em Sab Jul 16, 2011 4:34 pm

OPA!
Bom te ver novamente por aqui...e saber que está participando do challenge 2 =]
avatar
Z3r0

Mensagens : 149
Data de inscrição : 01/07/2011
Idade : 32

Ver perfil do usuário http://projectzim.blogspot.com

Voltar ao Topo Ir em baixo

Re: TiagoFernandes - Challenge 2 - Moderate - C

Mensagem  TiagoFernandes em Sab Jul 16, 2011 4:38 pm

Valeu, Z3r0. Em breve postarei o restante.
avatar
TiagoFernandes

Mensagens : 6
Data de inscrição : 02/07/2011
Idade : 28
Localização : Fortaleza

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: TiagoFernandes - Challenge 2 - Moderate - C

Mensagem  TiagoFernandes em Sab Jul 16, 2011 6:36 pm

2 - Já brincou de pedra, papel, tesoura? Então vamos brincar disto em programação. Faça um programa que simula dois jogadores brincando de pedra , papel, tesoura levando em conta os seguintes valores correspondentes à brincadeira:

Sortiar entre [Pedra, Papel, Tesoura]

Digite o nome do jogador 1 : Fulano
Digite o nome do Jogador 2 : Cicrano

Se o valor do sorteio de Fulano for Pedra + O valor de Cicrano Papel , O resultado será Papel
Se o valor do sorteio de Fulano for Tesoura + O valor de Cicrano Papel , O resultado será Tesoura
Se o valor do sorteio de Fulano for Pedra + O valor de Cicrano Tesoura , O resultado será Pedra

Pedra + Pedra = Retorna ao sorteio
Papel + Papel = Retorna ao sorteio
Tesoura + Tesoura = Retorna ao sorteio

Obs.: Só é permitido usar um único loop/laço.

 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define TRUE 1 //Constante para servir de teste para o laço

#define TAMANHO_NOME 20 //Constante para guardar o tamanho do nome

//Atribuir um número inteiro a cada elemento
#define PEDRA 0
#define PAPEL 1
#define TESOURA 2

int main(void)
{
char nome[2][TAMANHO_NOME];//Matriz para guardar os nomes dos jogadores
char elemento[][9] = {"Pedra", "Papel", "Tesoura"};//Matriz para guardar os nomes do possíveis resultados
int resultado1, resultado2;

srand(time(NULL));//Atribuir time(0), hora do sistema, como seed da função rand.

//Guardar o nome dos jogadores
printf("\nDigite o nome do jogador 1: ");
gets(nome[0]);

printf("\nDigite o nome do jogador 2: ");
gets(nome[1]);

do
{ //Sortear dois número entre 0 e 2. Onde 0 será Pedra; 1, Papel e 2, Tesoura.
resultado1=(rand()%3)+0;
resultado2=(rand()%3)+0;

//Mostrar os resultados
printf("\nResultado do jogador %s foi %s", nome[0], elemento[resultado1]);

printf("\nResultado do jogador %s foi %s", nome[1], elemento[resultado2]);

if(resultado1==resultado2) //Em caso de empate...
{
printf("\nEmpate, vamos jogar de novo\n");
getchar();
continue;//Voltar ao inicio do laço e sortear um novo resultado
}
//Resultados que favorecem o jogador 1
if((resultado1==PEDRA && resultado2==TESOURA) || (resultado1==PAPEL && resultado2==PEDRA) || (resultado1==TESOURA && resultado2==PAPEL))
{
//Mostrar o vencedor
printf("\nO vencedor foi o jogador %s.\n", nome[0]);
break;//E sair do laço
}
else //Se o jogador1 não for o vencedor...
{
//Mostrar o vencedor
printf("\nO vencedor foi o jogador %s.\n", nome[1]);
break;//E sair do laço
}
}
while(TRUE); //O laço vai rodar até que haja um vencedor
}

avatar
TiagoFernandes

Mensagens : 6
Data de inscrição : 02/07/2011
Idade : 28
Localização : Fortaleza

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: TiagoFernandes - Challenge 2 - Moderate - C

Mensagem  Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum