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:  
Diego Aquino

RESOLVIDO Não sei qual é o problema. Compilação normal.

Recommended Posts

 

int main(){

 

int valor, *vetor, outro, numero, vez = -1;

char opcao = 'k';

 

while(opcao!='g'){

   printf("a. Insercao de um novo elemento;\n");

   printf("b. Remocao de determinado valor: neste caso, todas as ocorrencias do numero devem ser removidas do vetor;\n");

   printf("c. Alteracao de um valor por outro: assim como na remocao, todas as ocorrencias devem ser alteradas;\n");

   printf("d. Busca de determinado elemento: neste caso, retornar a posicao da primeira ocorrencia, caso o elemento seja encontrado; se nao, retornar o valor -1;\n");

   printf("e. Exibir os numeros pares;\n");

   printf("f. Exibir os numeros impares;\n");

   printf("g. Sair do sistema: antes de concluir a execucao da aplicacao, exibir os elementos do vetor.\n");

   printf("\n\n\n\n");

   opcao = getch();

   switch(opcao){

      case 'a':

         printf("Digite um numero > 0: \n");

         scanf("%d", &valor);

         vetor = inserir_elemento(vetor, valor);

      break;

      case 'b':

         if(contador==0){

         printf("Nao é possivel remover, porque o vetor nao possui nenhum valor.\n");

         }else{

            printf("Digite o valor a ser eliminado: \n");

            scanf("%d", &valor);

            vetor = elimina_valor(valor, vetor);

         }

       break;

       case 'c':

            printf("Primeiro o valor que voce quer alterar, depois o valor que entrara no lugar:\n");

scanf("%d%d", &valor, &outro);

vetor = altera_valor(valor, vetor, outro);

break;

case 'd':

printf("Digite o numero a ser pesquisado no vetor: \n");

scanf("%d", &numero);

busca_elemento(vetor, numero);

break;

case 'e':

exibir_pares(vetor);

break;

case 'f':

exibir_impares(vetor);

break;

case 'g':

exibir_elementos(vetor);

break;

default:

printf("Opcao invalida\n");

break;

}

}

system("pause");

return 0;

}

#include <stdio.h>

#include <stdlib.h>

int contador=0;

int *inserir_elemento(int*vetor, int valor){

int i;

if(contador>0){

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

if(vetor==valor){

    printf("Esse valor nao pode ser inserido, porque ele é repetido.\n\n\n\n");

return (int*)vetor;

}

}

}

 

vetor[contador] = valor;

contador++;

return (int*)vetor;

}

int *elimina_valor(int valor, int*vetor){

int i;

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

if(vetor==valor && i<contador-1){

vetor = 0;

vetor = vetor[i+1];

contador--;

}else{

vetor = 0;

contador--;

}

}

return (int*)vetor;

}

int *altera_valor(int valor, int*vetor, int outro){

int i;

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

if(vetor==valor){

vetor = outro;

}

}

return (int*)vetor;

}

int busca_elemento(int*vetor, int numero){

int i;

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

if(vetor==numero){

printf("------------ O numero %d esta no vetor e sua posicao é %d ---------\n\n\n\n", numero, i+1);

return 0;

}

}

printf("-----------  Nao ha esse numero no vetor ------------\n\n\n\n");

return -1;

}

void exibir_pares(int*vetor){

int i;

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

if(vetor%2==0){

printf("- %d - ");

}

}

printf("\n\n\n\n\n");

}

void exibir_impares(int*vetor){

int i;

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

if(vetor%2==1){

printf("- %d - ");

}

}

printf("\n\n\n\n\n");

}

void exibir_elementos(int*vetor){

int i, j, aux;

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

for(j=i+1;j<10;j++){

if(vetor%2==1 && vetor[j]%2==0){

aux = vetor;

vetor = vetor[j];

vetor[j] = aux;

}

}

}

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

printf("- %d -  ", vetor);

}

}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • Esse é o código certo:

     

    #include <stdio.h>

    #include <stdlib.h>
     
    int contador=0;
     
    int *inserir_elemento(int*vetor, int valor){
    int i;
    if(contador>0){
     
    for(i=0;i<contador;i++){
    if(vetor==valor){
        printf("\n\n\n\n\n -------- Esse valor nao pode ser inserido, porque ele é repetido. -------\n\n\n\n");
    return (int*)vetor;
    }
    }
    }
     
    vetor[contador] = valor;
    contador++;
    return (int*)vetor;
     
    }
     
    int *elimina_valor(int valor, int*vetor){
    int i;
    for(i=0;i<contador;i++){
    if(vetor==valor && i<contador-1){
    vetor = 0;
    vetor = vetor[i+1];
    contador--;
    }else{
    vetor = 0;
    contador--;
    }
    }
    return (int*)vetor;
    }
     
    int *altera_valor(int valor, int*vetor, int outro){
    int i;
    if(contador==0){
    printf("\n\n\n\n\n ---------- Nao ha nenhum valor no vetor ------------\n\n\n\n\n");
    }else{
    for(i=0;i<contador;i++){
    if(vetor==valor){
    vetor = outro;
    }
    }
    }
    return (int*)vetor;
    }
     
    int busca_elemento(int*vetor, int numero){
    int i;
    for(i=0;i<contador;i++){
    if(vetor==numero){
    printf("------------ O numero %d esta no vetor e sua posicao é %d ---------\n\n\n\n", numero, i+1);
    return 0;
    }
    }
    printf("-----------  Nao ha esse numero no vetor ------------\n\n\n\n");
    return -1;
    }
     
    void exibir_pares(int*vetor){
    int i;
    for(i=0;i<contador;i++){
    if(vetor%2==0){
    printf("- %d - ");
    }
    }
    printf("\n\n\n\n\n");
    }
     
    void exibir_impares(int*vetor){
    int i;
    for(i=0;i<contador;i++){
    if(vetor%2==1){
    printf("- %d - ");
    }
    }
    printf("\n\n\n\n\n");
    }
     
    void exibir_elementos(int*vetor){
    int i, j, aux;
     
    for(i=0;i<contador;i++){
    for(j=i+1;j<contador;j++){
    if(vetor%2==1 && vetor[j]%2==0){
    aux = vetor;
    vetor = vetor[j];
    vetor[j] = aux;
    }
    }
    }
    for(i=0;i<contador;i++){
    printf("- %d -  ", vetor);
    }
    }
     
    int main(){
     
    int valor, *vetor, outro, numero;
    char opcao = 'k';
     
    while(opcao!='g'){
     
    printf("a. Insercao de um novo elemento;\n");
    printf("b. Remocao de determinado valor: neste caso, todas as ocorrencias do numero devem ser removidas do vetor;         \n");
    printf("c. Alteracao de um valor por outro: assim como na remocao, todas as ocorrencias devem ser alteradas;               \n");
    printf("d. Busca de determinado elemento: neste caso, retornar a posicao da primeira ocorrencia, caso o elemento seja encontrado; se nao, retornar o valor -1;          \n");
    printf("e. Exibir os numeros pares;          \n");
    printf("f. Exibir os numeros impares;       \n");
    printf("g. Sair do sistema: antes de concluir a execucao da aplicacao, exibir os elementos do vetor.       \n");
    printf("\n\n\n\n");
     
    opcao = getch();
     
    switch(opcao){
     
    case 'a':
    printf("Digite um numero > 0: \n");
    scanf("%d", &valor);
    vetor = inserir_elemento(vetor, valor);
    break;
     
    case 'b':
    if(contador==0){
    printf("\n\n\n\n\n ---------- Nao é possivel remover, porque o vetor nao possui nenhum valor. ---------\n\n\n\n\n");
    }else{
    printf("Digite o valor a ser eliminado: \n");
    scanf("%d", &valor);
    vetor = elimina_valor(valor, vetor);
    }
    break;
     
    case 'c':
    if(contador==0){
    printf("\n\n\n\n\n ---------- Nao é possivel remover, porque o vetor nao possui nenhum valor. ---------\n\n\n\n\n");
    }else{
    printf("Primeiro o valor a ser alterado, depois o numero que entrara:\n");
    scanf("%d%d", &valor, &outro);
    vetor = altera_valor(valor, vetor, outro);
    }
    break;
     
    case 'd':
    if(contador==0){
    printf("\n\n\n\n\n ---------- Nao é possivel fazer a busca, porque o vetor nao possui nenhum valor. ---------\n\n\n\n\n");
    }else{
    printf("Digite o numero a ser pesquisado no vetor: \n");
    scanf("%d", &numero);
    busca_elemento(vetor, numero);
    }
    break;
     
    case 'e':
    if(contador==0){
    printf("\n\n\n\n\n ---------- Nao é possivel exibir, porque o vetor nao possui nenhum valor. ---------\n\n\n\n\n");
    }else{
    exibir_pares(vetor);
    }
    break;
     
    case 'f':
    if(contador==0){
    printf("\n\n\n\n\n ---------- Nao é possivel exibir, porque o vetor nao possui nenhum valor. ---------\n\n\n\n\n");
    }else{
    exibir_impares(vetor);
    }
    break;
    case 'g':
    if(contador==0){
    printf("\n\n\n\n ----- Nao é possivel mostrar os elementos, porque o vetor esta vazio ------ \n\n\n\n");
    }else{
    exibir_elementos(vetor);
    }
     
    break;
    default:
    printf("Opcao invalida\n");
    break;
    }
    }
     
     
    system("pause");
    return 0;
    }

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Olá!

     

     

    Olha sou iniciante em C, mas dei uma olhada rápida, e parece que o problema parece estar relacionado aos seguintes alertas apresentados a seguir:

     

     

    |69|warning: format ‘%d’ expects a matching ‘int’ argument

     

    |79|warning: format ‘%d’ expects a matching ‘int’ argument

     

     

    - você esqueceu de colocar os argumentos para os printf():

    printf("- %d - ");

    acredito que o correto seria :

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

    - uso o sistema operacional Linux Ubuntu 14.04, então tive que substituir a função gech(); por getchar(); e não tive nenhum problema, por hora.

     

     

    - funções do tipo system(); como - system("pause");  fazem chamadas a componentes do sistema, e que dependendo do sistema, pode vir a causar problemas no seu programa durante a execução, por isso só use tais chamadas se for necessario e se tiver plena certeza de seu funcionamento.

    se voce usou system("pause"); para poder visualizar os resultados evitando que a tela se feche, você pode substitui-la por getchar();

     

     

    - Tente especificar os problemas que o programa está apresentando, pois, os testes simples que realizei o programa parece estar funcionando, com execeção das opções " b " e " c ", se der tempo tento postar algo ainda hoje . . .

     

     

    Ubuntu 14.04  GCC 4.8  CodeBlocks 13.12

     

     

    Espero Ter Ajudado ! ! !

    Editado por FelipePetropolis

    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

    ×