Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

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

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 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 às perguntas 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!   21-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:  
Bernardo Nunes

C++ Como fazer com que o usuario remova e ordene os valores em um Array

Recommended Posts

Olá, estou a fazer um programa em que tenho de fazer com que o usuário insira, pesquise, liste os valores de um array(isso faz o programa), mas essas partes já estão feitas. Agora falta que o programa ordene e faça uma estatística e que o usuário remova. é um programa com linguagem básica pois ainda estou a aprender. A alguém pode ajudar?

 

Obrigado

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
2 horas atrás, Bernardo Nunes disse:

Agora falta que o programa ordene

Ordenação você encontra neste artigo da Wikipédia. Melhor é você mesmo ler.

 

Caso esteja com coragem :thumbsup:

Editado por Mauro Britivaldo
  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Bernardo Nunes    para remover do array você pode apenas colocar um valor negativo, por exemplo -1,  naquela posição, assim quando for pesquisar, se em uma posição do array tiver o valor -1 então você saberá que o dado naquela posição foi deletado, assim você faz o que for necessário .   se você puder poste seu código para vermos como está e em que podemos ajudar .

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@devair1010 O código é o seguinte:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<unistd.h>
#include<locale.h>
int idades()
{
    system("cls");
    int r=5;
    int idades[r];
    int escolha2, escolha3, i, x, j, posicao, tamanho, encontrado;
    do
    {
    printf("\n1-inserir idades\n2-Listar\n3-Pesquisar\n4-Ordenar\n5-Eliminar\n6-Estatistica\n7-Regressar ao menu");
    printf("\n\n Escolha uma opcao: ");
    scanf("%d",&escolha2);
    system("cls");
    switch (escolha2)
    {
        case 1:
            {
                for(i=0;i<r;i++)
                {
                    printf("Introduza a %d idade: ",i+1);//aqui na coisa dos nomes no case 2 e 3.
                    scanf("%d",&idades);
                }
                system("cls");
                break;
            }
        case 2:
            {
                for(i=0;i<r;i++)
                {
                    printf("%d\n",idades);
                }
                sleep(5);
                system("cls");
                break;
            }
        case 3: 
            {
                printf("Introduza a idade que dejesa procurar: ");
                scanf("%d",&x);
                i=0;
                encontrado=0;
                do
                {
                    if (idades==x)
                    {
                        encontrado=1;
                        posicao=i+1;
                        break;
                    }
                    i++;
                    }while(i < r && encontrado==0);
                    if (encontrado==1)
                    {
                        printf ("Idade encontrada na posição: %d\n",posicao);
                    }
                    else if(encontrado!=1)

                    {
                        printf ("Idade não encontrada\n");
                    } 
                    sleep(5);
                    system("cls");
                    break;        
                }
            }
        }while(escolha2!=7);
}
int nomes()
{
    system("cls");
    int N;
    int r=5;
    char nomes[r][20];
    char x[1][20];
    int escolha2, i,posicao,j, tamanho, encontrado;
    do
    {
        printf("\n1-Inserir nome\n2-Listar\n3-Pesquisar\n4-Ordenar\n5-Eliminar\n6-Regressar a Menu");
        printf("\n\n Escolha uma opcao: ");
        scanf("%d",&escolha2);
        system("cls");
            switch (escolha2)
            {
            case 1:
                {
                    system("cls");
                    for(i=0;i<r;i++)
                    {
                        for(j=0;j<1;j++)//bernardo a partir de agr no menu dos nomes sempre que fores mexer no vetor nomes vais usar este ciclo for
                        {
                            printf("Introduza o %d nome: ",i+1);
                            scanf("%s",&nomes[j]/*a mesma coisa para o j*/);
                        }
                    }
                    system("cls");
                    break;
                }
                case 2:
                {
                    for (i=0;i<r;i++) 
                    {
                        N=strlen(nomes);//define o tamanha da string
                        printf("\n");
                        for (j=0;j<N;j++)
                        {
                            printf("%c",nomes[j]);
                        }
                    }
                    sleep(5);
                    system("cls");
                    break;
                }
                case 3: 
                {
                    printf("Introduza o nome que dejesa procurar: ");
                    scanf("%s",&x);
                    i=0;
                    encontrado=0;
                    do
                    {
                         if (strcmp(nomes,x[0])==0)//compara os dois nomes
                        {
                            encontrado=1;
                            posicao=i+1;
                            break;
                        }
                        i++;
                    }while(i < r && encontrado==0);
                    if (encontrado==1)
                    {
                        printf ("Nome encontrado na posição: %d\n",posicao);
                    }
                    else
                    {
                        printf ("Nome não encontrado\n");
                    } 
                    sleep(5);
                    system("cls");
                    break;        
                }
            }
        }while(escolha2!=6);
}
int notas()
{
    system("cls");
    int r=5;
    int notas[r];
    int escolha2,escolha3, i, x, encontrado, posicao;
    do
    {
    system("cls");
    printf("\n1-Inserir notas\n2-Listar\n3-Pesquisar\n4-Eliminar\n5-Estatistica\n6-Regressar a Menu");
    printf("\n\n Escolha uma opcao: ");
    scanf("%d",&escolha2);
    switch (escolha2)
    {
        case 1:
            {
                for(i=0;i<r;i++)
                {
                    printf("Introduza a %d nota: ",i+1);
                    scanf("%d",&notas);
                }
                system("cls");
                break;
            }
            case 2:
            {
                for(i=0;i<r;i++)
                {
                    printf("%d\n",notas);
                }
                sleep(5);
                system("cls");
                break;
            }
        case 3: 
            {
                printf("Introduza a nota que dejesa procurar: ");
                scanf("%d",&x);
                i=0;
                encontrado=0;
                do
                {
                    if (notas==x)
                    {
                        encontrado=1;
                        posicao=i+1;
                        break;
                    }
                    i++;
                    }while(i < r && encontrado==0);
                    if (encontrado==1)
                    {
                        printf ("Nota encontrada na posição: %d\n",posicao);
                    }
                    else if(encontrado!=1)

                    {
                        printf ("Nota não encontrada\n");
                    } 
                    sleep(5);
                    system("cls");
                    break;        
                }
        case 5:
            {
                do
                {
                system("cls");
                    printf("\n 1 - Numero de alunos\n 2 - Numero de notas positivas3 - Numero de notas negativas\n 4 - Nota mais elevada\n 5 - Nota mais baixa\n 6 - Media das notas por aluno\n 7 - Media das notas por modulo\n 8 - Media das notas\n 9 - Regressar a Menu");
                    printf("\n\n Escolha uma opcao: ");
                    scanf("%d",&escolha3);
                    switch (escolha3)
                    {
                        case 1:
                            {
                            }
                    }
                }while(escolha3!=9);
            }
       }
   }while(escolha2!=6);
}
int main()
{
    int escolha, i, x;
    setlocale(LC_ALL,"");
    while (escolha!=4)
    {
        system("cls");
        printf("\n 1 - Idades ");
        printf("\n 2 - Nomes ");
        printf("\n 3 - Notas ");
        printf("\n 4 - Fechar Programa ");
        printf("\n\n Escolha uma opcao: ");
        scanf("%d",&escolha); 
        if( escolha==4)
        {
            printf("\n O Programa foi fechado.\n\n");
            system ("\n\npause");
        }  
        if(escolha==1)
        {
            idades();
        }
        if(escolha==2)
        {
            nomes();
        }
        if(escolha==3)
        {
            notas();
        }
    }
} 
adicionado 2 minutos depois

@devair1010 ignore os comentários 

Editado por Simon Viegas
Inserir tag CODE
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá @Bernardo Nunes

 

21 horas atrás, Bernardo Nunes disse:

Olá, estou a fazer um programa em que tenho de fazer com que o usuário insira, pesquise, liste os valores de um array(isso faz o programa), mas essas partes já estão feitas. Agora falta que o programa ordene e faça uma estatística e que o usuário remova. é um programa com linguagem básica pois ainda estou a aprender. A alguém pode ajudar?

 

Qual a sua dúvida? entendi do que falta, mas o que nelas está com dificuldades?

 

Peguei o seu código acima, mas está dando erro. Não compila. Possivelmente por que não postou o código com a tag CODE :(. Acho que "sumiu" uns [i ]...  Por favor, edite a sua postagem e cole novamente o código dentro da tag CODE, beleza?

 

 

Vamos lá:

21 horas atrás, Bernardo Nunes disse:

Agora falta que o programa ordene e faça uma estatística e que o usuário remova. é um programa com linguagem básica pois ainda estou a aprender. A alguém pode ajudar?

 

Escolha um dos pontos e tente fazer... Por exemplo, pegue a parte do "ordenar". Então, assim como citado por @Mauro Britivaldo, existem diversos métodos de ordenação prontos. Você não precisa reinventar a roda :D. Sugiro utilizar o Bubble Sort... é o mais popular e um dos mais simples de entender e implementar.

 

Agora tudo vai depender também de como quer utilizar a ordenação... mas vamos supor que adicione um item ao menu para "Ordenar de for crescente ", ai só pegar o vetor e aplicar o método correspondente. Ao escolher para listar, os dados devem aparecer em ordem.

 

 

 

Para remover, tem o exemplo do @devair1010... altere para um valor que seja definido como "apagado"... poderia ser o 0 também.

 

 

 

Para Estatísticas, precisaria especificar melhor o que precisa...

 

 

RESUMINDO:

Tente implementar ou a ordenação ou a remoção, e posta o código aqui e onde está com dúvidas. Depois ver outro item.

 

 

No aguardo.

 

 

 

  • Curtir 1

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






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×