Pages

Subscribe:
Mostrando postagens com marcador exercicio em c. Mostrar todas as postagens
Mostrando postagens com marcador exercicio em c. Mostrar todas as postagens

terça-feira, 9 de setembro de 2014

Ordenação Gnome Sort em C

E aí pessoal, mais um exemplo de código hoje, o Gnome Sort. É um algoritmo simples até, onde ele faz a ordenação de números, bem legal para aumentar o conhecimento.
O funcionamento é o seguinte, primeiro digite todos os números que deseja ordenar, ele só vai parar de fazer as leituras quando for digitado algo que não seja número e será impresso todos os números de maneira ordenada.
Como em todos os outros códigos, antes de utilizarem, tentem entender o código. Abraço.



# include <stdio.h>
# include <stdlib.h>
# include <ctype.h>
# include <string.h>
# include <stdbool.h>
# define MAX 100001
 
int VectorSort[MAX];
int size = 0;
 
void swap(int * ,int *);
void GnomeSort();
 
int main (void)
{

printf("Entre com os valores: ");
 while(scanf("%d",&VectorSort[size]) >= 1)
 size++;
 
 GnomeSort();
 return 0;
}
 
void swap(int *A, int *B)
{
 int C = *A;
* A = *B;
* B = C;
}
 
void GnomeSort()
{
 int next = 0, previous = 0;
 int i = 0;
 
 for(i = 0; i < size ; i++)
 {
 if(VectorSort[i] > VectorSort[i + 1])
 {
  previous = i;
  next = i + 1;
  while(VectorSort[previous] > VectorSort[next])
  {
 swap(&VectorSort[previous],&VectorSort[next]);
 previous--;
 next--;
  }
 }
 }
 
 for(i = 0; i < size; i++)
 printf("%d\n",VectorSort[i]);
}

sábado, 6 de setembro de 2014

Vetor em C - Zeros no final

Olá pessoal, hoje vamos falar sobre mais um código bem interessante, geralmente o enunciado dele termina assim "Dessa forma todos “zeros” devem ficar para as posições finais do vetor" . O código não é muito complicado não, mas é bom para entender a manipulação dos elementos dentro do vetor.
Antes de usarem o código em algum lugar, procurem entender, vejam o funcionando e tirem as dúvidas.
Até mais.





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

main(){
int vet[10],cont,i,j=0,aux;

for(i=0;i<10;i++){   /*Colocando valores no vetor*/
printf("Digite o %d valor do vetor: ", i+1);
scanf("%d",&vet[i]);
}
for(i=0;i<10;i++){  /*Correndo cada elemento do vetor*/
if(vet[i]==0){  /*Verificando se há 0 na posição do vetor*/
cont=i;
do{
aux = vet[i];   /*Passando zero para uma variavel*/
for(j=i;j<10;j++){   
vet[j]=vet[j+1]; /*Jogando os elementos do vetor para frente*/
}
vet[10]=aux;   /*Colocando o zero no fim do vetor*/
cont++;
if(cont==10){  /*para evitar o loop na verificação do fim do vetor*/
break;
}
}while(vet[i]==0); /*verifica se o numero que entrou no lugar do zero não é outro zero*/
cont=0;
}
}
printf("Os valores organizados são: \n");  /*Imprimindo os valores*/
for(i=0;i<10;i++){
printf("%d",vet[i]);
}
return 0;
getch();
}

terça-feira, 2 de setembro de 2014

Anagrama em C

Meus caros, hoje passarei um pequeno exercício de C sobre anagrama. Anagrama é quando você pega uma palavra e com as letras dela você forma outras palavras. Ex: Palavra -> Roma .. Anagramas: Amor,Omar,Ramo e etc. O exercício esta bem explicado, porém, podem perguntar se não entenderem alguma coisa. Gostaria de mais algum código? Deixe nos comentários.

#include<conio.h>
#include<stdio.h>
#include<string.h>

main(){

int cont=0,i,j,tam1,tam2;   /*Declaração de variáveis inteiras*/
char palavra1[50],palavra2[50];  /*declaração das strings*/

printf("Digite a primeira palavra: ");
gets(palavra1);  /* Lendo a primeira palavra*/
printf("\nDigite a segunda palavra: ");
gets(palavra2);  /*Lendo a segunda palavra*/
tam1=strlen(palavra1);  /*Passando o tamanho da palavra1 para tam1*/
tam2=strlen(palavra2);  /*Passando o tamanho de palavra2 para tam2*/

if(tam1==tam2){   /*Verificando se o tamanho das palavras são iguais, senão elas não são anagramas*/
for(i=0;i<tam1;i++){   /*Verificando os caracteres da primeira string*/
for(j=0;j<tam2;j++){    /*Verificando os caracteres da segunda string*/
if(palavra1[i]==palavra2[j]){   /*Comparando se o caracter da palavra1 contém em palavra2*/
cont++;
palavra2[j]=0;     /*Se o caracter estiver contido em palavra2, cont soma 1, o caracter é trocado por um 0 e sai do for*/
break;
}
}
}
if(cont==tam1){  /*Se o cont for do tamanho da palavra1, quer dizer que sao anagramas*/
printf("As palavras são anagramas.");
}
else{
printf("Não são anagramas.");
}
}
else{
printf("Não são anagramas.");
}
return 0;
getch();
}



Bom proveito do código.