• Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   14-02-2016

      Prezados membros do Fórum do Clube do Hardware,

      Está aberto o processo de seleção de novos moderadores para diversos setores do fórum. Os requisitos são:
        Pelo menos 1000 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas ao formulário abaixo:    Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • dif

      Poste seus códigos corretamente!   22-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
robersoncomputer

Algoritmo para ordenar por nome [error]

5 posts neste tópico

boa tarde galera, olha ja tentei de todas as formas, mas nao sei qual é o erro, se puderem me orientar qual e o meu erro. seguinte ele compila beleza, na hora qu pede para digitar o primeiro nome, eu escrevo e a hora que dou enter para ele pedir par digitar o proximo da o erro e no erro fala para enviar relatório e nao enviar abaixo segue o codigo, o engraçado que o de numeros da beleza veja:

/*a funçao recebe como parmetro um determinado numero de elemento "char* e o

ponteiro do primeiro elemento do vetor qeu deseja ordenar*/

void bolha (int n, char* nomes)

{

int i,j;

for(i= n-1; i>1; i--)

for(j=0; j<i; j++)

if(nomes[j] > nomes[j+1]) /* troca*/

{

int aux = nomes[j];//se for maior, aux armazena este valor maior

nomes[j] = nomes[j+1];

nomes[j+1] = aux;

}

}

# include <stdio.h>

# include <string.h>

char main(void)

{

char nomes[5]; //= {'joao', 'maria', 'ana', 'fabiana', 'bruna'};

int i;

//emtrada de dados

for (i=0; i<5; i++)

{

printf("entre com um nome: ");

scanf("%c", nomes);

}

bolha(5, nomes);

printf(" Vetor Ordenado \n ");

//apresenta os elementos

for(i=0; i<5; i++)

printf("%c", nomes);

printf("\n");

// return 0;

}

void bolha (char n, int* nomes)

{

int i,j;

for(i= n-1; i>1; i--)

for(j=0; j<i; j++)

if(nomes[j] > nomes[j+1]) /* troca*/

{

char aux = nomes[j];//se for maior, aux armazena este valor maior

nomes[j] = nomes[j+1];

nomes[j+1] = aux;

}

}

# include <stdio.h>

//# include <string.h>

int main(void)

{

int nomes[5] = {5, 10, 2, 1, 3};

int i;

bolha(5, nomes);

printf(" Vetor Ordenado \n ");

for(i=0; i<5; i++)

printf("\n%d \n", nomes);

printf("\n");

return 0;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

ppara comparar string se usa a funçao strcmp da biblioteca string.h

strcmp(string1,string2)==0 se forem iguais

>0 se a primeira for maior que a segunda nesse caso precisaria ser ordenada

<0 se a primeira for menor que a segunda aqui ela estaria ordenada

Compartilhar este post


Link para o post
Compartilhar em outros sites

L30N4RD0 obrigado pela resposta, vou tentar aqui arrumar... ok quando eu conseguir volto aqui e coloco como resolvido. Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara...

char nomes[5];

(...)

scanf("%c", nomes);

Se você quer ler nomes usando a declaração "char nomes[5];" Os nomes só poderão ter 4 caracteres pois o 5º é usado para o '\0' que indica o fim da string.

E você sempre iria sobreescrever os valores a cada nova leitura, ou seja, "nomes" teria sempre um nome só.

Se você quer 5 nomes de no máximo 10 caracteres(por exemplo), você tem de declarar assim:

char nomes[5][11];

E como você quer ler um nome inteiro, pegando apenas um caractere?

Strings são lidas com %s!

scanf("%s", nomes);

Cuidado com o '\n' de cada entrada!

-

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado SharaMoustache queria manja assim como tu, poh a tempos tendo não aprendo, na hora da pratica sempre embanano, não sei por onde vai como fazer. Bom assim que me sobrar um tempo eu vou mexe no código ok grato pela reposta e logo retornarei ....

Alias essa questão em um vetor que fico na dúvida

char nomes[5][11] // sempre //tenho dúvida em relação ao que o primeiro [] faz e para que o segundo [] serve é a //mesma coisa para números. Se o 1º [] serve para eu ter 5 nomes, o 2º serve para a //quantia de palavras que quero por exemplo [20] caracteres e se for inteiro como é ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!


Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.


Entrar agora